Forth
http://fforum.winglion.ru/

опять об идеологии и внутреннем устройстве Форта
http://fforum.winglion.ru/viewtopic.php?f=12&t=2703
Страница 1 из 7

Автор:  вопрос [ Вт янв 25, 2011 12:28 ]
Заголовок сообщения:  опять об идеологии и внутреннем устройстве Форта

Цитата:
идеологически чужды Форту, то есть будут смотреться коряво, использоваться криво

я рад, что существует единственно верная идеология форта :wink:

Автор:  mOleg [ Вт янв 25, 2011 12:54 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

вопрос писал(а):
я рад, что существует единственно верная идеология форта

такого не бывает в природе (то есть вообще не бывает единственно верных решений).

Автор:  Hishnik [ Вт янв 25, 2011 13:17 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

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

Автор:  Mihail [ Вт янв 25, 2011 13:20 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

mOleg писал(а):
Реализация системы - это интимное дело автора, уж тем более, если система с закрытым кодом.Важно, чтобы интерфейсы были совместимые


Что за интерфейсы? Изначально, грамматика Форта определяется
его устройством. Ради совместимости, можно ограничется
неким верхнем уровнем. Но определить его довольно сложно.
Но главная проблема совместимости не в этом.
Главное, что у фортеров нет достаточного стимула
придерживаться стандарта.

mOleg писал(а):
синтаксические решения необоснованно тянут в Форт, не смотря на то, что они идеологически чужды Форту


Вообще, Форту ничего не чуждо. В этом его идеология.
Вопрос только в совместимости и в избежание конфликтов.
Если новая грамматика конфликтует с базовой системой,
её всегда можно оформить в виде вставки.
Форт со вставками не имеет предела применения.
Другое дело - малочисленнные, разрозненные форторы
не в состоянии довести новые средства до надлежащего
уровня.

Автор:  mOleg [ Вт янв 25, 2011 13:57 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

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

1) не знаю ;)
2) о чем и речь

Хищник писал(а):
Часто речь идет даже не о какой-то "идеологии", а просто о согласованности утверждений.

согласен

Mihail писал(а):
Что за интерфейсы?

: blabla ( a b c --> d e f ) bla bla bla ;
вот в круглых скобках и есть описание интерфейса

Автор:  chess [ Вт янв 25, 2011 16:10 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

Mihail писал(а):
Что за интерфейсы? Изначально, грамматика Форта определяется
его устройством. Ради совместимости, можно ограничется
неким верхнем уровнем. Но определить его довольно сложно.
Но главная проблема совместимости не в этом.
Главное, что у фортеров нет достаточного стимула
придерживаться стандарта.

Согласен - 'грамматика' Форта следует из устройства форт-системы.
Форт-систем много - поэтому и 'грамматик' тоже много.
Mihail писал(а):
Вообще, Форту ничего не чуждо. В этом его идеология.

Идеология форта состоит в 'низком старте' - в обозримом исходном наборе
элементарных средств для построения языков предметной области.
Форт дает в этом деле полную свободу пользователю.
Но пользователю недостаточно знать как устроена форт-система, чтобы
сделать проблемно-ориентированный язык.

Автор:  mOleg [ Вт янв 25, 2011 16:27 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

chess писал(а):
Согласен - 'грамматика' Форта следует из устройства форт-системы.
Форт-систем много - поэтому и 'грамматик' тоже много.

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

chess писал(а):
Идеология форта состоит в 'низком старте' - в обозримом исходном наборе
элементарных средств для построения языков предметной области.

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

А вообще, это уже все флейм пошел, надо, однако бы, в отдельную тему выделять.

Автор:  chess [ Вт янв 25, 2011 16:50 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

mOleg писал(а):
не согласен.
Граматика следует из метода обмена данными, а она для разных систем одинаковая - через стек. То есть, имхо, именно метод передачи параметров определяет синтаксис языка.

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

Форт предполагает строить понятия снизу, поэтому 'низкий старт'.

Автор:  mOleg [ Вт янв 25, 2011 17:03 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

chess писал(а):
Был форт и без стека параметров

А причем тут стек параметров?

chess писал(а):
Форт предполагает строить понятия снизу, поэтому 'низкий старт'.

Не понятно, с чего это взято. С какой стороны хочу, с такой и строю.
Как удобнее, так и делается. Хоть сверху, хоть снизу, хоть вдоль, хоть поперек.

Автор:  chess [ Вт янв 25, 2011 17:34 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

mOleg писал(а):
Граматика следует из метода обмена данными, а она для разных систем одинаковая - через стек. То есть, имхо, именно метод передачи параметров определяет синтаксис языка.

Это кто написал?
Или вы под стеком понимаете стек возвратов или другой какой стек?
А под разными системами вы часом не только форт-системы понимаете?
mOleg писал(а):
Не понятно, с чего это взято. С какой стороны хочу, с такой и строю.

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

Автор:  mOleg [ Вт янв 25, 2011 19:51 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

chess писал(а):
Это кто написал?

Я

chess писал(а):
Или вы под стеком понимаете стек возвратов или другой какой стек?

Я имею ввиду все стеки, которые есть в системе, однако же в большинстве случаев речь о стеке данных.

chess писал(а):
А под разными системами вы часом не только форт-системы понимаете?

только Форт-системы.

chess писал(а):
Под фортом я понимаю изначальную форт-систему (только ядро). Тот исходный минимальный базовый набор процедур и набор
структур данных, с помощью которого можно наращивать кодовую базу до проблемно-ориентированного языка.

его можно наращивать и сверху, не забывайте о VECT переменных.

Автор:  chess [ Вт янв 25, 2011 21:57 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

mOleg писал(а):
Я имею ввиду все стеки, которые есть в системе, однако же в большинстве случаев речь о стеке данных.

Пусть будет стек данных, а не стек параметров. Это же только термины. Смысл то один.
Так вот форт - может быть вообще без стеков. Тогда 'грамматика' у него будет другая.
mOleg писал(а):
его можно наращивать и сверху, не забывайте о VECT переменных.

Кого его? Форт что-ли. Если векторизуем внешний код, созданный не на базе кода форта(ядра)
там может появиться своя 'грамматика', кроме того может быть заблокирована часть кода
форта(ядра). Короче такое расширение я к чистому форту уже не отношу.

Автор:  Mihail [ Вт янв 25, 2011 22:26 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

mOleg писал(а):
Граматика следует из метода обмена данными, а она для разных систем одинаковая - через стек.


Грамматика это синтаксис и семантика. Синтаксис Форта это слова разделенные пробелом.
Элементом семантики Форта является обратная польская запись. Элементом потому,
что слово форта может может соответствовать любой программе и в том числе не пользующейся стеком.
С точки зрения грамматики, прямая и обратная польская записи равносильны.
Обратная польская запись используется ради упрощения устройства форт-системы.
Сама по себе, польская запись никому не нужна. Стек - является элементом устройства форт-системы.
По мимо стека и другие элементы форт-системы тоже могут иметь значения. На пример тип шитого кода.
Тебе еще важно было устройство словаря. К стати, в Форке оно то что надо? Как ты это использовал?

Автор:  mOleg [ Вт янв 25, 2011 23:12 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

chess писал(а):
Так вот форт - может быть вообще без стеков. Тогда 'грамматика' у него будет другая.

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

chess писал(а):
mOleg писал(а):
его можно наращивать и сверху, не забывайте о VECT переменных.

Кого его? Форт что-ли.

Решение задачи, лексикон. Вообще речь о проектировании: доступно как сверху вниз, так и снизу вверх.

Mihail писал(а):
mOleg писал(а):
Граматика следует из метода обмена данными, а она для разных систем одинаковая - через стек.


Грамматика это синтаксис и семантика. Синтаксис Форта это слова разделенные пробелом.
Элементом семантики Форта является обратная польская запись.

я говорю лишь о том, что постфиксная запись является не причиной, а следствием методики передачи данных и вообще представления данных, т.к. даже словарь организован в виде своеобразного стека.

Mihail писал(а):
Обратная польская запись используется ради упрощения устройства форт-системы.
Сама по себе, польская запись никому не нужна. Стек - является элементом устройства форт-системы.

не согласен, одно следует из другого, упрощение тут почти не причем.

Mihail писал(а):
По мимо стека и другие элементы форт-системы тоже могут иметь значения. На пример тип шитого кода.

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

Mihail писал(а):
Тебе еще важно было устройство словаря. К стати, в Форке оно то что надо? Как ты это использовал?

Ведь не заглядывал в форк 8)
надо, используется, и будет использоваться. Подробности в форке ;)

Автор:  ArtemKAD [ Ср янв 26, 2011 01:14 ]
Заголовок сообщения:  Re: Quark: Пример кода - LOOP

Mihail писал(а):
mOleg писал(а):
Граматика следует из метода обмена данными, а она для разных систем одинаковая - через стек.


Грамматика это синтаксис и семантика. Синтаксис Форта это слова разделенные пробелом.
Элементом семантики Форта является обратная польская запись. Элементом потому,
что слово форта может может соответствовать любой программе и в том числе не пользующейся стеком.
С точки зрения грамматики, прямая и обратная польская записи равносильны.
Обратная польская запись используется ради упрощения устройства форт-системы.
Сама по себе, польская запись никому не нужна. Стек - является элементом устройства форт-системы.

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

Помимо стека вторая характерная особенность Форта - словарь. Который по сути есть элемент компилятора с разорваным циклом компиляции. Т.е. то,что в классических компиляторах является внутренней кухней недоступной для использования в Форте предоставлено в свободный доступ и изменение.
Третья особенность - слова могут не только компилироваться, но и исполняться.
Четвертая особенность - распределенный компилятор который состоит из множества существующих и новых IMMEDIATE-слов.

PS. Кстати, цвета в colorForth, это попытка создать аналоги членов предложения расширив таким образом возможности безадресной передачи параметров.

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