[image]

Настоящая история FORTH

Продолжение "Непонимания"
 
+
-
edit
 

Gudleifr

втянувшийся

Veden12> Создал страничку.
Вот эта страничка. И там выкладывается перевод книги "Шитые интерпретативные языки" Р.Ж.Лёлигер.
В ней рассказывается, как в 1978 году автор, получив в свое распоряжение микрокомпьютер и узнав про FORTH начал писать свой TIL (шитый интерпретативный язык). Впрочем, у него получился тот же FORTH. Таким образом, история FORTH все более и более запутывается.

Что мы знаем?

1. В 1958 Чарльз Мур работает в обсерватории. Ему лень перекомпилировать свою программу каждый раз, когда незначительно меняются условия задачи и он задумывается о разработке развитого интерпретатора уровня языка управления заданиями для сборки программы из готовых кусков по требования пользователя. Официальное изложение этого момента.

2. В районе 1970 года Чарльз Мур предлагает язык FORTH, который уже не может работать на уровне управления заданиями, но позволяет описывать общепринятые на тот момент вычислительные конструкции в формате свободного ввода (слова, разделенные пробелами), записывать их в шитом коде и, понятно, исполнять.

3. Тогда же (июнь 1970) Чарльз Мур пишет статью PROGRAMMING A PROBLEM-ORIENTED-LANGUAGE, которую обнародует только в 2011 году. В статье описывается для чего (возможности единообразного написания прикладных задач) и как (на голом железе ЭВМ того времени) он создавал FORTH. В обоснование идеи упоминается дуализм язык-машина. Кроме того в статье упомянуты многие частные решения, некоторые из которых впоследствии (стараниями Броуди) представляются изюминкой FORTH (строковый редактор, числа с фиксированной точкой...).

4. В настоящее время считается, что Мур изначально создавал программу для управления конкретным железом. И главная FORTH-фича - изящное совмещение схемотехнических решений с более-менее полными реализациями FORTH-стандартов. Сам Мур этим вполне доволен и разрабатывает многоядерные FORTH-процессоры и пытается придать стандартному FORTH большую выразительность (например, раскрасив слова). На фоне этого публикация работы (3) выглядит как дань несбывшимся юношеским мечтам.

5. В 1962 году опубликована работа Е.W.Dijkstra. An attempt to unify the constituent concepts of serial program execution. Дейкстра рассуждает о свойствах дуализма языка-машины. Для удобства обсуждения предлагает "граничную модель" такого механизма, до неприличия напоминающую FORTH. Обосновывается применение понятия ячейки, двух стеков, обратной польской записи, шитого кода... О частных решениях Дейкстра принципиально(!) умалчивает. После прочтения становится очевидным, что FORTH Чарльза Мура лишь удачная (оптимизированная, ограниченная) техническая реализация модели Дейкстры. Возникает вопрос: что было между 62-м и 70-м годом?

6. В 1978 году Р.Ж.Лёлигер экспериментирует с TIL (почему-то тщательно избегая слова FORTH). Многие его идеи очень похожи на описанные Муром в (3), однако совершенно не развиты. Но, ведь, работа Мура была опубликована только в 2011? Значит, параллельно культуре "стандартного FORTH для управления железом" существовала "культура изобретения проблемно-ориентированных языков"? А параллельно развитию "синтаксической компиляции" размышляли о "машинах, определяемых языком, и языках, определяющих машину" (не путать с "конечными автоматами, допускающими язык").

20.11.14 Поправил ссылку
   27.027.0
Это сообщение редактировалось 20.11.2014 в 15:09
+
-
edit
 

Veden12

втянувшийся
Лёлигер, по сути, рассматривает создание Форт-системы с нуля. Конечно, Z80 сегодня – уже история. Тут требуется приложение в виде Родригеса, где можно подобрать нечто похожее на выбранный процессор или контроллер.

Концепция TIL преподносится как результат закономерного развития идеи классического интерпретатора. Вероятно, для практиков так оно и было. Под TIL понимается то, что можно назвать Форт-методом, но не языком. TIL начисто лишён набора обязательных слов. Фортом Лёлигер называет лишь то, что распространяется под этим ярлыком. Сам он названий не придумывает, ему не до того.

P.S. Ещё один момент: летом 1978 датируется первая публикация Forth Dimensions
   33.0.1750.15433.0.1750.154
Это сообщение редактировалось 26.03.2014 в 12:11
+
-
edit
 

Gudleifr

втянувшийся

Байка. Как-то, будучи студентом, халтурил на кафедре. Писал очередную СУБД на FoxBase+ для какой-то конторы. Был большой аврал и профессор договорился с другим преподавателем, чтобы мне за эту работу закрыл очередной курсовик. Поперся с зачеткой и толстым листингом. А злыдень-преподаватель давай меня перед всей группой стыдить: мол, какие использовали математические методы, какой вклад внесли в алгоритмическую науку, неужели, просто закодировали очевидный процесс?
Теперь я сам старый. И, глядя на чью-то программу, думаю, что подобное могла понаписать и обезьяна, тупо "кодируя, что велено".

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

Veden12> Лёлигер, по сути, рассматривает создание Форт-системы с нуля.
Veden12> Тут требуется приложение в виде Родригеса.
А это кому-то надо? Это ли не самая очевидная часть FORTH, которая не должна вызвать никаких вопросов?
(Из после-Мур-овских "реализаторских" книжек выделяю только Баранова и Ноздрунова, за грамотную систематизацию и выдержанный стиль изложения. А, еще, я с них и драл свой первый работающий FOBOS под MS-DOS).

Veden12> Под TIL понимается то, что можно назвать Форт-методом, но не языком.
Да нет там никакого метода. Метод, он для чего-то, а не для самого себя. А Лелигер только во введении упомянул о каких-то "задачах", а всю остальную книгу тупо реализует подмножество FORTH.

Veden12> Ещё один момент: летом 1978 датируется первая публикация Forth Dimensions
Т.е. состоялась окончательная победа FORTH-кодеров над FORTH-программистами. Мол, мы не знаем, зачем и кому он нужен, но т.к. писать просто и забавно, почему бы и не задрать лапку на этот столбик?
   27.027.0
RU Gudleifr #26.07.2014 11:04  @Gudleifr#19.03.2014 14:22
+
-
edit
 

Gudleifr

втянувшийся

Gudleifr> Таким образом, история FORTH все более и более запутывается.

Balancer> Ну и всюду, даже на PHP, стараюсь пользоваться Thinking Forth

К сожалению, общение с "современными фортерами" подтвердило первоначальный вывод. Те, кто предпочитает FORTH-метод FORTH-языку, пишут не на FORTH!
А тупо воспринимать FORTH как язык, на котором можно писать, это как программировать на Брайнфаке.

Броуди> На самом деле вам не стоит писать каких-либо серьезных задач на Форте; как язык, он просто недостаточно мощен. Вам "следует" писать на Форте свои собственные языки (лексиконы) для моделирования вашего понимания проблемы, на которых вы можете элегантно описать ее решение.

Но, если задача "серьезная", то написание "собственного языка" становится слишком важным, чтобы его можно было доверить FORTH.

Стоило "исследовать"?
   3.63.6
Это сообщение редактировалось 26.07.2014 в 17:39

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