Re: Почему Форт никогда не был популярным среди мэйнстримовы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 29.06.12 16:54
Оценка: 2 (2) +4 -1
Здравствуйте, Lazytech, Вы писали:

L>Собственно, вопрос содержится в названии темы. Я еще могу понять разработчиков коммерческого софта, но Форт и среди приверженцев открытого исходного кода не слишком-то популярен.


Для системного программиста, которому надо вылизывать производительность — это в принципе не может быть сделано достаточно эффективно (как на C), хотя бы из-за стековой машины, через которую надо всё пропускать.
Для прикладного — отсутствие высокоуровневых концепций. А если они есть, как в объектных диалектах Форта — то это уже совсем другой язык.
И отсутствие контроля ошибок на компиляции, ошибиться можно в огромном количестве моментов и заметить это будет крайне сложно.

В итоге Форту осталась очень специфическая ниша — например, загрузчики, где полноценного окружения ещё нет, компилятора ещё быть не может, но хочется что-то делать на уровне повыше ассемблера, и есть готовые к этому люди. Соответственно имеем FreeBSD bootloader, Sparc Openboot и аналогичные средства.

L>Простота идеи, заложенной в Форт, позволяют написать ядро Форт-системы за день.


Верно. Но дальше с такой системой ничего существенно полезного делать уже не получится.

L>Размер кода Форта для 16-разрядных систем, при грамотном написании программы, иногда в 10-20 раз меньше кода, скомпилированного из программы на Си. Для 32-разрядных систем этот разрыв ещё больше.


Не верю. Может, это было на старых компиляторах. Но сейчас такой разницы не достигнуть. Особенно на задачах, которые хоть чуть-чуть выходят за пределы ниши Форта. А уж что будет твориться с производительностью... при непосредственном шитом коде программа на Форте чуть более чем полностью это машинные команды CALL. И как современные процессоры будут это обрабатывать? Постоянно сбрасывать конвейер разбора?
А какая производительность у машины, у которой по сути два регистра, и оба — указатели стека?

L> В операционных системах общий выигрыш может составлять уже сотни, а то и тысячи крат.


Врут.

L> Причина очень простая — готовая задача на Форте имеет размер несколько байт, все вспомогательные подпрограммы реализованы в виде определений, доступных всем.


int main() { work(); }

это я написал программу, которая имеет размер несколько байт, все вспомогательные подпрограммы реализованы в виде определений, доступных всем.

L> Система на Форте вместится в процессор, в который другие системы влезть в принципе не способны.


Только за счёт фактической эмуляции компилятора своими средствами.

L>

В начале 1980-x на основе языка Форт Джон Уорнок и Чак Гешке из Adobe Systems создали язык PostScript, широко используемый для управления устройствами печати и послуживший основой для создания формата PDF.



L>Известные в узких кругах программы для ОС Windows, написанные на языке Форт:

L>
  • blat — консольная программа для отправки сообщений по электронной почте

    Я видел её код и даже допиливал его. Чистый C.
  • The God is real, unless declared integer.
    Отредактировано 01.05.2015 11:21 netch80 (do->work) . Предыдущая версия .
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.