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/ |