Forth
http://fforum.winglion.ru/

о критериях оценки языков программирования.
http://fforum.winglion.ru/viewtopic.php?f=12&t=1280
Страница 3 из 4

Автор:  Hishnik [ Вс сен 20, 2009 16:29 ]
Заголовок сообщения: 

вопрос писал(а):
на базе - так, что развитие языка осуществляется благодаря дальнейшему использованию базового "предязыка" и это экономит время, т.к нет необходимости каждый раз заново пересоздавать весь компилятор (понятно ли говорю? )

Тогда языки, про которые можно сказать, что у них что-то сделано, как в Форте, могут считаться языками на базе Форта.

Автор:  вопрос [ Вс сен 20, 2009 16:33 ]
Заголовок сообщения: 

нет, только те языки, в которые можно вносить новые идеи (или правила) просто добавляя определения на форте и не пересобирая весь (их) транслятор

Автор:  Mihail [ Вс сен 20, 2009 18:49 ]
Заголовок сообщения: 

Хищник писал(а):
(во втором dup и drop перекочевали в неизменном виде, а стековые операции называются иначе, но имеют полностью совпадающую семантику).



dup и drop можно завести в любом языке общего назначения, хоть в качестве процедуры хоть макроса.
Не в использовании стека главная особенность форта. Главная особенность, это возможность на ряду с
функциями/процедурами определять директивы и декларации. Т.е. если-бы слова типа IMMEDIATE и COMPILE
перекочевали, тогда другое дело.

Автор:  Hishnik [ Вс сен 20, 2009 19:05 ]
Заголовок сообщения: 

Mihail писал(а):
dup и drop можно завести в любом языке общего назначения, хоть в качестве процедуры хоть макроса.
Не в стеке главная особенность форта. Главная особенность, это возможность на ряду с функциями/процедурами
определять директивы и декларации. Т.е. если-бы слова типа IMMEDIATE и COMPILE перекочевали, тогда другое дело.

Это уже совершенно иной аспект языка. Когда мы говорим о схожести с точки зрения пользователя (прикладного программиста), в первую очередь необходимо смотреть именно на грамматику. Бейсик тоже был интерпретируемым, а стал компилируемым, но все равно это тот же самый язык, и изучать его надо в том же стиле. По крайней мере, если человек в 80-х программировал на Бейсике, то он и сейчас увидит много знакомых конструкций, а новые окажутся для него приятными неожиданностями.

Стек формально не является неотъемлемой частью Форта, но это как раз "игра на контрастах". А что будет, если удалить стек? На самом деле, можно написать слова, которые будут оперировать с фиксированными ячейками памяти - создать регистровую машину. При этом сохранятся принципы организации словарей, поиска и компиляции. А что будет, если заменить словарь на базу данных или массив структур с фиксированным размером записи? Тоже можно работать, просто поиск будет не по цепочке LFA, а просто перебором массива с полями "имя", "адрес", "флаги". Вот так понемножку, удаляя или заменяя отдельные части Форта, мы и очерчиваем его основные отличительные признаки. Все примеры, которые утверждают, что в Форте можно и без какой-то конкретной части, как раз и представляют собой те самые исключения, которые подтверждают правило. Имея основу (некий абстрактный образ Форта, или его конкретный исторический срез), можно рассматривать модификации языка, как в плане грамматики, так и в плане кодогенерации. Вот вся эта пачка и образует понятие "Форт-технологии".

Автор:  Kopa [ Вс сен 20, 2009 21:23 ]
Заголовок сообщения: 

Offtopic:
[url=http://lurkmore.ru/Выстрелить_себе_в_ногу]Шуточное сравнение процесса "Прострелить себе ногу" на разных языках на lurkmore[/url]

P.S. Что примечательно C и Форт решают эту задачу наиболее просто:)

Автор:  Mihail [ Вс сен 20, 2009 22:58 ]
Заголовок сообщения: 

Хищник писал(а):
Когда мы говорим о схожести с точки зрения пользователя (прикладного программиста), в первую очередь необходимо смотреть именно на грамматику


Нет у Фота определенной грамматики. Да и не язык это, он в большей степени является операционной системой.
Определяющим является польза, ради чего его используют. Польская запись не является причиной использования
Форта. Именно потому, что не существует библиотеки подпрограмм с передачей параметров через стек
(на пример для Си). При этом мы получаем польскую запись при доступе ко всем средствам поддерживающим
программирование на Си.
Преимущество Форта в расширяемости и доступе ко всем ресурсам форт-системы.

Автор:  garbler [ Пн сен 21, 2009 11:35 ]
Заголовок сообщения: 

Kopa писал(а):
P.S. Какие ещё критерии?


много, очень много, вот краткая таксономия:
http://hopl.murdoch.edu.au/taxonomy.html
http://hopl.murdoch.edu.au/keyset.html

Хищник писал(а):
Postscript, Joy, Factor, Forpost, MSIL?

я бы ещё добавил stoical, lse, pop11, cat, 4p и массу других

Автор:  chess [ Пн сен 21, 2009 13:54 ]
Заголовок сообщения: 

Mihail писал(а):
Преимущество Форта в расширяемости и доступе ко всем ресурсам форт-системы.

Я бы сказал по-другому:
Преимущество Форта в расширяемости, основанной на полном доступе ко всем ресурсам форт-системы.

Автор:  chess [ Пн сен 21, 2009 14:03 ]
Заголовок сообщения: 

garbler писал(а):
я бы ещё добавил

pdf, dssp

Автор:  garbler [ Пн сен 21, 2009 15:31 ]
Заголовок сообщения: 

chess писал(а):
Преимущество Форта в расширяемости, основанной на полном доступе ко всем ресурсам форт-системы.

это уже далеко не уникальное "преимущество":
http://en.wikipedia.org/wiki/List_of_re ... _platforms

извиняюсь за моветон в виде википедии, но:
http://en.wikipedia.org/wiki/Reificatio ... er_science)
http://en.wikipedia.org/wiki/Reflection ... er_science)
http://en.wikipedia.org/wiki/Metaprogramming

сферических лошадей в римановом пространстве изобретать не стоит.

Автор:  chess [ Пн сен 21, 2009 15:59 ]
Заголовок сообщения: 

garbler писал(а):
это уже далеко не уникальное "преимущество":

Ну приведите тогда пример языка, в котором можно организовать интерпретацию покомандного доступа к процессору
без встроенного в язык ассемблера.

Автор:  garbler [ Пн сен 21, 2009 17:54 ]
Заголовок сообщения: 

chess писал(а):
Ну приведите тогда пример языка, в котором можно организовать интерпретацию покомандного доступа к процессору без встроенного в язык ассемблера.

не очень понял заданные ограничения, но, например:
http://maclisp.info/pitmanual/intrnl.html#26.18.3
оно там библиотекой подключается, если погуглить по LAP - можно ещё всякого найти.

а в чём сложность с ассемблером? и в его реализации "на ходу" уж если даже в бейсике есть peek/poke и def usr

Автор:  chess [ Пн сен 21, 2009 19:15 ]
Заголовок сообщения: 

garbler писал(а):
а в чём сложность с ассемблером? и в его реализации "на ходу" уж если даже в бейсике есть peek/poke и def usr

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

Автор:  garbler [ Пн сен 21, 2009 19:49 ]
Заголовок сообщения: 

chess писал(а):
Поэтому интерпретация команд ассемблера в бейсике будет лишена смысла, так как движок будет искажать результаты выполнения этих команд. В Форте даже этот момент можно обойти.


http://lvovpk.org.ua/basc3x2i.htm любая бейсик-программа

как реализуешь, так и будет, от массива DATA с inline-вставкой, до любой приемлемой системы кодирования, в том числе и вызов системных подпрограмм и расширение языка по системным переменным, векторам, прерываняим (RST x) и регистрам (A, HL и др.). это часто практиковалось в своё время на разных 8-битовых системах. (на ДВК и Электроника-100 Бейсик вообще в шитый код компилировался, благо адресация процессора позволяла)

в общем, не о том у нас спор идёт.

p.s. всякие железячники у буржуев, кстати, до сих пор тяготеют к бейсикам (что vb, что gw), сам поражаюсь наткнувшись иногда на иное творение....

p.p.s. выход к железу у Оберона ещё был (из того, с чем сам сталкивался)

Автор:  chess [ Пн сен 21, 2009 20:25 ]
Заголовок сообщения: 

garbler писал(а):
в общем, не о том у нас спор идёт.

Да я вот-что имел ввиду(работа в консоли):
Код:
HERE .
5936506
Ok ( 1 1 )
A+@P   
Ok ( 1 2 )
@P+A
Ok ( 3 2 )
A+@P
Ok ( 3 5 )
@P+A
Ok ( 8 5 )
A+@P
Ok ( 8 13 )
@P+A
Ok ( 21 13 )

Тут реально выполняются команды процессора: add eax, [ebp], add [ebp], eax
А вообще-то я считаю что у человека время не резиновое и тратить его на изучение чего-то нового
надо ограниченно, этот процесс во многом можно заменить при программировании размышлением и использованием какого-либо
языка-концепции(минимального по нач. объему для начала работы) Форт - подходит для поддержки достаточно широкой и сложной
предметной области.

Страница 3 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/