Forth
http://fforum.winglion.ru/

Крис Касперски о Форте и Лиспе
http://fforum.winglion.ru/viewtopic.php?f=12&t=2208
Страница 1 из 1

Автор:  mOleg [ Сб июл 18, 2009 10:21 ]
Заголовок сообщения:  Крис Касперски о Форте и Лиспе

цитата из статьи Криса Касперски Языки, которые мы потеряли ссылочка появилась на ru.fig

Цитата:
В Лиспе (Lisp) и Форте (Forth), созданных в 1958 и 1970 годах соответственно, самомодификация была вынесена на уровне языка, что позволяло реализовывать высокоэффективные программы, построенные на динамических алгоритмах. Уникальнейшей особенностью Форта (не реализованная ни в каком другом языке) была и остается возможность "честной" модификации Форт-машины, то есть непосредственно самого транслятора, который при желании со стороны программиста можно вообще полностью переписать штатными средствами самого языка!

В Фортране, Алголе, Паскале, Си/Си++ и прочих "хороших и разных" клонах (включая Бейсик) самомодификация возможна лишь теоретически — путем варварской правки машинного кода в оперативной памяти. Почему "варварской"? Да потому, что язык к этому не имеет никакого отношения, более того, самомодификация опирается на недокументированные возможности языка, закладываясь на логику конкретных трансляторов, что чревато развалом программы при переходе на другой компилятор, не говоря уже о том, что машинный код — штука понятная лишь небольшому кругу избранных, но даже Великий Гуру не сможет написать самомодифицирующуюся программу, работающую более чем на одном процессоре.

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

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

Во-вторых, Си++, Nemerle и R# поддерживают (и активно продвигают) парадигму метапрограммирования, позволяя писать программы, создающие другие программы, которые в свою очередь создают третьи… Это, конечно, не совсем самомодификация, но нечто на нее похожее. Однако, реализация метапрограммирования крайне тяжеловесна, логика и синтаксис — запутаны, сложны для понимания и абсолютно непрозрачны, а возможности существенно уступают Форту и Лиспу. В общем, муть и мрак.

Автор:  Hishnik [ Сб июл 18, 2009 19:13 ]
Заголовок сообщения: 

mOleg писал(а):
цитата из статьи Криса Касперски Языки, которые мы потеряли ссылочка появилась

А мы Форт не потеряли! :)

Автор:  Wlad [ Сб июл 18, 2009 21:51 ]
Заголовок сообщения: 

ПОлностью согласен с предыдущем оратором! Смотря - КТО потерял...

Автор:  Kopa [ Пн июл 20, 2009 09:51 ]
Заголовок сообщения:  Re: Крис Касперски о Форте и Лиспе

mOleg писал(а):
ссылочка появилась на ru.fig


Ещё раньше была на местном форуме здесь

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