OSDev
http://osdev.su/

kakie yaziki programirovaniya luche podhodyat dlua os?
http://osdev.su/viewtopic.php?f=5&t=964
Страница 4 из 4

Автор:  Freeman [ 22 июл 2014, 18:11 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

Эффективность нужно рассматривать в разрезе поставленных целей (эффективность разработки программ, эффективность развертывания/обслуживания, переносимость, реальное время, статический анализ и поиск уязвимостей и т. д.), поэтому однозначного ответа тут быть не может.

А вот предсказуемость работы могут обеспечить именно функциональные языки: благодаря чистоте функций необходимые затраты (памяти, времени и пр.) теоретически могут быть подсчитаны ДО запуска программы, если ядро поддерживает функциональную парадигму, а не просто запускает любой код, который ему подсунут.

Автор:  doc1456 [ 22 июл 2014, 18:18 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

согласен с фрименом .Хаскел не сильно популярен из за того что он использует непревычные всем принципы програмирования. http://dir.osrc.info/ObshhijjSpisokOS вот еще полезоне список ос полный болемение

Автор:  pavia [ 22 июл 2014, 18:20 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

Дело в том что ОС на функциональном языке написать нельзя. А то что в примере выше так там функциональный язык модифицирован до императивного.

Автор:  Nable [ 22 июл 2014, 23:31 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

pavia писал(а):
Дело в том что ОС на функциональном языке написать нельзя. А то что в примере выше так там функциональный язык модифицирован до императивного.
1. Слишком сильно мнение что парадигма - огромное свойство языка, а не подхода к делу. Зря, имхо.
2. Тот же лисп нередко считают функциональным. Пореже, но тоже часто - объектно-ориентированным. В любом случае, в системном программировании в целом и в ОСеписании в частности он весьма так используется и поныне. Или он типа такой единственный на фоне других языков программирования?
3. Тема выглядит как тролльский^W холиварный вброс. Ведь если не флудить, а дело делать, то расклад такой: 1) чтобы использовать язык для написания ОС, нужно им очень хорошо владеть 2) нужно быть способным реализовать для него библиотеку времени выполнения со всеми нужными функциями, либо хотя бы быть способным прикрутить одну из кем-то уже реализованных (при наличии таковых) 3)* использование GC (сборки мусора), языков где переменная может менять тип, языков где переменные немутабельны и прочих модных вещей может усложнить жизнь, порой очень сильно и без заметного профита.
Всё это заметно сужает выбор здравомыслящего человека. Иногда, правда, у него при этом остаётся вариант "разрабатывать свои средства разработки" (специально использовал тавтологию) и иногда человек и правда может сделать это хорошо. Но это слишком редкий случай.

Автор:  Himik [ 23 июл 2014, 00:38 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

pavia писал(а):
Дело в том что ОС на функциональном языке написать нельзя. А то что в примере выше так там функциональный язык модифицирован до императивного.

Язык не модифицирован - в этом и состоит вся суть лабораторной работы. К тому же такой необходимости нет, т.к. в языке уже имеется поддержка механизма "монад" для императивных действий. Просто в библиотеку добавили операции для работы с аппаратурой. Насколько я понимаю, в рантайме реализован в основном менеджер памяти со сборщиком мусора - это в общем-то и всё, а всё остальное делается в рукопашную на Haskell-е. Похоже, они хотели доказать, что при желании на любом ЯП можно написать ОС :)

Автор:  Yoda [ 23 июл 2014, 13:07 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

Freeman писал(а):
Эффективность нужно рассматривать в разрезе поставленных целей

Безусловно. Если поставлена цель написать ОС на функциональном языке, то Haskell - хороший язык :D.

Freeman писал(а):
А вот предсказуемость работы могут обеспечить именно функциональные языки: благодаря чистоте функций необходимые затраты (памяти, времени и пр.) теоретически могут быть подсчитаны ДО запуска программы

Именно здесь вы сильно ошибаетесь. Предсказуемость на этапе выполнения - свойство НЕ функциональных языков, но императивных. Чистота функций ни при чём, затраты времени необходимо рассматривать в рамках анализа алгоритмов. Сбор мусора и ленивые вычисления (lazy evaluation) в значительной степени ставят под сомнение возможность точного прогнозирования времени выполнения.

pavia писал(а):
Дело в том что ОС на функциональном языке написать нельзя.

Небольшая поправочка: ОС на чистом функциональном языке написать нельзя.

pavia писал(а):
А то что в примере выше так там функциональный язык модифицирован до императивного.

Он не то, чтобы модифицирован до императивного. В него добавлены средства для получения "побочных эффектов", ибо программа без побочных эффектов совершенно бесполезна. Т.е. реальные функциональные языки вынуждены искать компромисс между недостижимой "голубой мечтой" отсутствия побочных эффектов и бесполезностью, и пользой, но с побочными эффектами.

Nable писал(а):
1. Слишком сильно мнение что парадигма - огромное свойство языка, а не подхода к делу. Зря, имхо.

Сами языки стимулируют к такому подходу.

Nable писал(а):
3. Тема выглядит как тролльский^W холиварный вброс. Ведь если не флудить, а дело делать, то расклад такой: 1) чтобы использовать язык для написания ОС, нужно им очень хорошо владеть 2) нужно быть способным реализовать для него библиотеку времени выполнения со всеми нужными функциями, либо хотя бы быть способным прикрутить одну из кем-то уже реализованных (при наличии таковых)

Очень на то похоже. Как говорится, рассуждать о вкусе устриц можно с тем, кто их ел.

Himik писал(а):
Похоже, они хотели доказать, что при желании на любом ЯП можно написать ОС :)

Вот! Я ведь о том же!

Автор:  Freeman [ 23 июл 2014, 16:55 ]
Заголовок сообщения:  Re: kakie yaziki programirovaniya luche podhodyat dlua os?

Yoda писал(а):
Предсказуемость на этапе выполнения - свойство НЕ функциональных языков, но императивных.

Я говорил про предсказуемость ДО выполнения, а не когда уже поздно что-то менять. Декларативная целостность. Про монады Himik за меня уже ответил.

В целом с функциональными языками ситуация примерно та же, что и с микроядрами. В теории хорошо, но в реальности другого железа нет, поэтому приходится искать компромиссы. А вот без сборки мусора обойтись можно, и на таком гибридном языке вполне можно будет написать ОС.

Страница 4 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/