Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср авг 15, 2018 12:41

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 132 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:00 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Хищник писал(а):
Что кладет HEX на стек данных?
Само себя. Вы опять путаете стеки.

Возможно, такое можно придумать. Но подавляющее большинство реализаций ничем подобным не занимается. Что значит "кладет само себя"? HEX изменяет системную переменную BASE, стек данных остается нетронутым. При вызове HEX, как и любого другого слова, используется стек возвратов, но операции с ним прозрачны при обычном исполнении потока слов. Можно набрать достаточно примеров слов Форта с нотацией ( -- ).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:04 
Хищник писал(а):
Но подавляющее большинство реализаций ничем подобным не занимается. Что значит "кладет само себя"? HEX изменяет системную переменную BASE, стек данных остается нетронутым.
Т.е. Вы отрицаете, что при чтении слова HEX из входного потока есть четко определенный момент, когда на стеке лежит адрес HEX?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:08 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Т.е. Вы отрицаете, что при чтении слова HEX из входного потока есть четко определенный момент, когда на стеке лежит адрес HEX?

Разумеется! Никакой необходимости в таком моменте нет. Я прекрасно понимаю, что имеется в виду механизм, при котором сначала на стек кладется CFA, потом делается EXECUTE. Но он же не единственный. Достаточно посмотреть по реализациям Форта. По своим я точно могу сказать, что никогда не клал CFA на стек данных.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:11 
Хищник писал(а):
По своим я точно могу сказать, что никогда не клал CFA на стек данных.
Поздравляю! Вам удалось доказать, что все Вами написанное не Forth-машины, а лишь их эмуляторы. Если только ячейку, куда попадает CFA, не считать вершиной стека ввода.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Поздравляю! Вам удалось доказать, что все Вами написанное не Forth-машины, а лишь их эмуляторы. Если только ячейку, куда попадает CFA, не считать вершиной стека ввода.

Я никогда не встречал классификации, по которой Форт-машиной считалось бы нечто, имеющее "стек ввода". С точки зрения терминологии, описанное поведение не требует стека, поскольку больше одного значения CFA в процессе интерпретации и не требуется. В противном случае строки бы выполнялись справа налево. Соответственно, "стек ввода" обречен пасть от бритвы Оккама.
Впрочем, мне не так и важно, на какую полочку классификации попадают мои разработки. Практические потребности являются движущей силой теоретических разработок, а не наоборот.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:26 
Хищник писал(а):
больше одного значения CFA в процессе интерпретации и не требуется
В общем случае требуется (вспомните хотя бы "инфиксную запись").


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
В общем случае требуется (вспомните хотя бы "инфиксную запись").

Инфиксная запись в Форте и не предусмотрена. Он же состоит только из слов и не предусматривает понятия "выражение", которое требовало бы разбора. Если мы хотим разбирать инфиксную запись, это можно сделать отдельным словом Форта. Технически оно будет представлять собой интерпретатор, но в рамках форт-машины ничем не выделяется - оно ищется в словаре, по найденному адресу делается call. По тому же принципу можно построить еще и префиксную запись, а то и разбор голосовых команд. Структура существующего интерпретатора ничему из этого не препятствует.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 01:49 
Хищник писал(а):
это можно сделать
Зачем что-то делать, если в стеке ввода (стек данных + ячейка под CFA) и так все прекрасно складируется: и CFA того, что нужно запустить позже, и параметры, и флаги... Более того, при компиляции достаточно простого переключения и все будет перенаправляться в стек словаря.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 02:00 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Зачем что-то делать, если в стеке ввода (стек данных + ячейка под CFA) и так все прекрасно складируется: и CFA того, что нужно запустить позже, и параметры, и флаги... Более того, при компиляции достаточно простого переключения и все будет перенаправляться в стек словаря.

И это все для инфиксной записи, которая необязательна? Существующая практика показывает, что необязательное и не делают. Сейчас я уже вижу попытку встроить в штатный режим работы интерпретатора нечто постороннее. Но минимальный Форт можно запустить и без всего этого. А раз так, значит, оно и будет сделано рано или поздно, а значит, стандартом не станет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 02:07 
Хищник писал(а):
И это все для инфиксной записи, которая необязательна?
Нет, это работает всегда и у всех. Некоторые только этого не знают. Или используют в своих эмуляторах вместо FIND C-switch :lol:


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 02:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Нет, это работает всегда и у всех. Некоторые только этого не знают. Или используют в своих эмуляторах вместо FIND C-switch

Не нужно фантазировать. Заявление об отсутствии опровергается единственным примером. Монолитный Evaluate на ассемблере или ЯВУ не задействует стек Форта, при этом никакого switch там нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 10:52 
Хищник писал(а):
Заявление об отсутствии опровергается единственным примером. Монолитный Evaluate на ассемблере или ЯВУ не задействует стек Форта, при этом никакого switch там нет.
В данном случае - пример однозначно опровергнет только наличие Forth, ясно показывая, что мы имеем дело с эмулятором.
Хотя, скорее, Вы просто не хотите видеть динамику процесса, предпочитая считать Forth-машиной все, где есть стек и шитый код, вплоть до Б3-34...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 12:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
В данном случае - пример однозначно опровергнет только наличие Forth, ясно показывая, что мы имеем дело с эмулятором.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 12:16 
Хищник писал(а):
Дайте определения терминов "Форт-машина" и "эмулятор".

Хищник писал(а):
Только технические, для проверки которых достаточно залезть в код и посмотреть, как конкретно там сделано.

Для второго первое необязательно (если хотите формализмов, идите к Дейкстре).
Характеристическое свойство Forth должно принять таким: наличие "ячейки/слова", как универсальной единицы памяти, достаточной для полного описания фрагмента данных/кода. Обращение с этой ячейкой безотносительно содержащихся в ней данных.
Например, в C мы можем получить адрес функции, но не должны путать адреса функций разных типов. В Forth все адреса кода имеют "одинаковый тип", следовательно мы можем обращаться со всеми ними одинаково - хранить в стеках, комбинировать в сложных словах и т.д.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: обсуждение наброска стандарта
СообщениеДобавлено: Сб июн 22, 2013 12:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6373
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
gudleifr писал(а):
Для второго первое необязательно (если хотите формализмов, идите к Дейкстре).

Здесь же не Дейкстра поднял вопрос о принципиальном различии Форт-машины и эмулятора :)
gudleifr писал(а):
Характеристическое свойство Forth должно принять таким: наличие "ячейки/слова", как универсальной единицы памяти, достаточной для полного описания фрагмента данных/кода.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 132 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB