Forth
http://fforum.winglion.ru/

Как вы себе представляете будующюю Форт ОС?
http://fforum.winglion.ru/viewtopic.php?f=16&t=3135
Страница 5 из 5

Автор:  Ethereal [ Пн авг 28, 2017 23:42 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

Взаимоисключающие параграфы. Если Форт можно превратить в то, что нужно, значит он способен на то, что нужно. А если нужно именно то, для чего сделан костыль ?

Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E))
- нужна рекурсия
- нужна своя локальная запись для свойств подвыражения на каждом вложении рекурсии.
Значит костылим локальные записи, потому-что это реально нужно. Я и накостылил.

Кстати, а где ознакомиться с типичными Форт-решениями ? Вот что я придумал, то мне и знакомо. Броуди читать ?

Автор:  Hishnik [ Вт авг 29, 2017 00:14 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

KPG писал(а):
Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность"
Думаю это близко и к пониманию Форт

Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним.

Автор:  gudleifr [ Вт авг 29, 2017 00:36 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

Ethereal писал(а):
А если нужно именно то, для чего сделан костыль ?
Зачем делать костыли, если легче отрастить ноги?

Ethereal писал(а):
Вот пример с рекурсивным разбором выражения, к примеру (A+(B+C)*(D-E))
Рекурсивными выражениями занимаются языки описания грамматик (тот же yacc, для определенности). Сравним yacc-программу и FORTH-систему. Обе получают на вход ПОТОК символов и складывают то, что прочли, в СТЕКообразные структуры. Когда в стеке будет собрана более-менее полная конструкция, она сворачивается (или компилируется). Велика ли разница между ПОТОКАМИ и СТЕКАМИ обеих программ? Если воспринимать FORTH, как нечто окончательное, то велика (хотя, Мур легко победил частный случай - инфиксную арифметику). Но, если мы легко пишем нашу FORTH-систему на коленке, то что, так трудно научится разбирать ПОТОК на операнды и операторы? И сделать СТЕК деревом? Легко. (Я даже пытался классифицировать способы добавления в FORTH таких фич - http://fforum.winglion.ru/viewtopic.php?f=16&t=2990).

Ethereal писал(а):
Броуди читать ?
Лучше Мура.

Автор:  Ethereal [ Вт авг 29, 2017 16:02 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

@Gudleifr
Так я именно так и делаю. У меня однопроходный Оберон получается. Т.е. программа рассматривается как поток, который разбирается на лексемы, выражения разбираются на операнды и операторы. Инфиксные выражения в процессе рекурсивного разбора автоматически выворачиваются постфиксными. Хоть код стек-машины сразу порождай. Правда, я хочу порождать код не для стековой, а для регистровой машины. Из-за этого в процессе рекурсивного разбора приходится на следующий уровень рекурсии передавать наследие - указатель на запись в которой хранятся атрибуты ранее разобранного - подгружено ли в регистр, если да, то в каком регистре, если нет, то по какому базовому регистру и с каким смещением адресуется, какого типа - Integer и оперируем словами или Boolean и байтами и прочая, прочая. И все эти атрибуты временны и локальны на данном вложении рекурсии. Короче, нужна локальная переменная в подпрограмме типа запись. А она в изначальном Форте (CORE words) костылируется. Т.е. сама задача требует костыль.

Не, ну можно конечно запись разложить на кучу отдельных переменных. Но тогда на следующий уровень рекурсии придется передавать на стеке их все. И всюду оперировать с ними с помощью PEEK. Но тогда совсем некрасиво выйдет. Слово с 10-ю входными параметрами - это совсем некрасиво. По моему это как раз тот случай, когда стоит в Форт притащить сущности из других ЯВУ - локальные переменные (в данном случае неименованные) и записи.

Автор:  gudleifr [ Вт авг 29, 2017 16:32 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

Ethereal писал(а):
Так я именно так и делаю.
Скорее всего, так и есть. Похоже, тут чисто терминологические невязки. Слово, использующее кадр стека так, как ему удобно - это по-Forth-овски, а "механизм локальных переменных" - уже нет. Разница не в том, как оно работает, а насколько требует внесения в стандарт. И насколько, внесенное в стандарт, оно будет требовать от программиста делать так, даже, если оно не будет удобно. См. например, http://gudleifr.forum2x2.ru/t31-topic#250.

Автор:  Ethereal [ Вт авг 29, 2017 16:32 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

Hishnik писал(а):
KPG писал(а):
Хорошая статья по парадоксу Блаба Грэм, Пол "Lisp: побеждая посредственность"
Думаю это близко и к пониманию Форт

Действительно, интересно. Лисп в целом чем-то похож на Форт в части стиля работы с ним.
Угу. Программисты на Лисп смотрят на программистов на Форт, как на УнаБомбера :
Изображение

Автор:  Ethereal [ Пт сен 01, 2017 21:05 ]
Заголовок сообщения:  Re: Как вы себе представляете будующюю Форт ОС?

Hishnik писал(а):
Лисп в целом чем-то похож на Форт в части стиля работы с ним.
Работа с Лисп в Форт-стиле. Создаем исполняемый файл на Clozure Common Lisp с помощью ихнего аналога SAVE-SYSTEM :
Код:
(defun hello () (format t "Hello, world!"))
(ccl:save-application "hello.exe"
                      :toplevel-function #'hello
                      :prepend-kernel t         )
Действительно получается EXE-шник. И запускается. И работает. Да только весит 19 мегабайт. :shock:
Но мне тильдочка перед hello понравилась. :) Ну прям токен заполучаем.

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