Почему Форт не популярен?

 
+
-
edit
 

Mishka

модератор
★★★
avmich>Короче, чем Форт хорош-то? :)

Идеологически он другой. Тот же шитый код - весьма нетривиальная идея. Плюс расширяемый словарь - это нечто большее, чем просто процедуры. Можно новые ключевые слова добавлять. Поэтому и удобно создавать диалекты. Это, наверное Nick_Crack и имел ввиду, только я не врубился сразу. Из процедурных языков я знаю пожайлуй только Алгол 68, который позволял диалекты создавать - разрешал перегружать стандартные операции и для новых типов данных и вводить новые как унарные, так и бинарные. Кроме того шитый код позволяет делать такие вещи - в отличие от других интерпретаторов, когда дешифруешь код операции и вызываешь процедуру интерпретации. А та возвращает управление назад. А в шитом коде можно сделать так, что возврат пойдет на следующую процедуру интерпретации - налицо экономия одного вызова. Но это с точки зрения имплементатора.
 
+
-
edit
 

avmich

координатор

Миш, а кто такой Терехов?

Больно не бить :) на нашем факультете компиляторы не читали, приходилось самоучиться...
 
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
avmich>Не, Крон, я не о каком-то конкретном компиляторе Си, а о том, что Си строился, как более удобный ассемблер - это не совсем так, но до какой-то степени верно.

Ну, какая разница, у кого откуда уши растут? :) Потому, как, например, тот же SP-Forth генерит вполне себе машинный код и, в отличии от Си/Си++, практически один-в-один, если оптимизатор не используется. Т.е. одно слово Форта порождает конкретный кусок кода.

avmich>Форт же реализует некоторую более абстрактную, и изящную, идею - но большинство процессоров скорее си-образны, чем заточены под эту форт-идею.

Ну, не сказал бы. Если брать чистые компиляторы, типа DP-Forth, то в сравнении с Си никакой идеологической разницы, а если принимать во внимание шитый код (я, наконец, допёр, на что ты намекаешь), то на всякие DEC/68K/и т.п., имеющие косвенный переход по регистру с автоинкрементом, то он ложится на них вообще как родной. На Интеловских процессорах, как я уже упоминал, тоже можно достичь бОльшего быстродействия на словах-примитивах, чем на вызовах функций в Си/Си++ за счёт того, что не тратится время на переорганизацию стека и возврат, т.к. какждое слово само передаёт управление следующему. А вот на вызовах высокоуровневых Форт-слов уже возможны потери. Хотя надо считать, возможно на современных 32-битных процессорах можно и их сделать более быстрыми, чем простые call/ret. Другое дело, что С/С++ или тот же O'Caml берут не этим, а глобальной оптимизацией, не обращаясь к каждому оператору как к подпрограмме, а вставляя сразу код и оптимизируя результат. Вот тут Форт проигрывает, т.к. на создание современных его компиляторов затрачивалось слишком мало человекочасов :) Разработкой оптимизации такого уровня никто не занимался...

avmich>Что касается компилятора MSVC... пусть Мишка скажет. У меня скептическое, скажем так, отношение к нему :) . Особенно в сравнении с интеловским :) .

Ну, Intel'овский лучше, но менее доступен и выигрышь идёт не в разы а, обычно, на проценты :)

avmich>Короче, чем Форт хорош-то? :)

Гибкостью и расширяемостью :) Особенно прятен для всяких свер управления железками. Математику на нём считать - извращение. Строки всякие - можно понаделать хороших библиотек, и не сложно, но их нет... А вот для железяк - самое то :)
 
+
-
edit
 

Mishka

модератор
★★★
avmich>Мишка, а вроде теорема есть, что рекурсию можно сводить к циклам?..

Это только элементарную. А функция Аккермана как раз первая, которую дают в теории вычислимости как не элементарную. Крон нашел от трех параметров, а нам давали классическую от двух.

Вот нашел классическое определение
 
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
Кстати, что интересно, как раз в той ссылке, что я давал (на трёхпараметрическую) Аккермана раскладывают в нерекурсивный вид :)
 
+
-
edit
 
avmich>>Короче, чем Форт хорош-то? :)

Mishka>Идеологически он другой. Тот же шитый код - весьма нетривиальная идея. Плюс расширяемый словарь - это нечто большее, чем просто процедуры. Можно новые ключевые слова добавлять. Поэтому и удобно создавать диалекты. Это, наверное Nick_Crack и имел ввиду, только я не врубился сразу.

Ага :cwm12: Именно так.
Кроме того, большинство групп делающих Форт-процессоры, это энтузиазисты-любители, и видят в Форте только ПРОСТОТУ, пытаются сделать процессор как можно ПРОЩЕ. А надо IMHO не ПРОЩЕ(что теперь миллион транзисторов туды-сюды? :) )а за эффективностью.
Сделать Форт-процессор с
1. Зацеплением команд(как в пикоДжаве)
что резко повысит производительность, выведет ее на уровень процессора с обычным регистровым фалом
2. Организовать, может быть используя VLIW метод, организовать препроцессорную трансляцию по специальным, загружаемым таблицам. Т.е. новые Форт-слова загружаются в специальную табличную память для динамической перекомпиляции на лету.
Нет?

Ник
Объективная реальность - вариант бреда, обычно вызывается низким уровнем концентрации алкоголя в крови.
 
+
-
edit
 

Mishka

модератор
★★★
avmich>Миш, а кто такой Терехов?

avmich>Больно не бить :) на нашем факультете компиляторы не читали, приходилось самоучиться...

Ну, во-первых, мой начальник (мы все его так звали) - в полном смысле слова и еще научный руководитель на матмехе Ленинрадского Универа.

Во-вторых (это скорее должно быть во-первых), руководитель работ по Алголу 68 (компилятор был для ЕС, Самсона, ХТ и еще пары машин), Ады и других статических АЯВУ. Здесь Ник_Крак бросал ностальгические воспоминания про Демосят - там его поминали. В споре с Еретиком я описывал команду. Итерпретатор Эльбруса на ЕС - тоже там. (Назвать его эммулятором язык не поварачивается - он интерпретировал поток команд. А всякие там примочки, типа смоделировать доступ к памяти или регистру с учетом быстродействия - ни-ни. А эммулятор должен железо эммулировать более-неменее точно - а у нас только функционально.)

Вообщем, умный человек. Сейчас директор своей конторы и завкафедрой на том же матмехе.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru