Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 13:48

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 101 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Заголовок сообщения: очередной флуд от gudleifr
СообщениеДобавлено: Вт май 12, 2015 20:49 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:12, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 20:53 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
gudleifr писал(а):
Иммедиате-словари просто неудобны.
Чем они неудобны ?
: FOO SLOVAR ZZZ ;
как-то удобнее, чем
: FOO [ SLOVAR ] ZZZ ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 20:53 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
gudleifr писал(а):
Иммедиате-словари просто неудобны.
Чем они неудобны ?
: FOO SLOVAR ZZZ ;
как-то удобнее, чем
: FOO [ SLOVAR ] ZZZ ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 21:00 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:13, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 21:05 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
gudleifr писал(а):
Проще сразу реализовать FORTH прямо по книге.
Так я это сделал давно. Но не под Винды. А в данный момент идея в том, чтобы получить 4 разных форта - FIG, 79, 83 и Бар-Нозд, как бы по ходу дела. Трансформируя один в другой и закрывая непонятки. Я, например, только из Фиг-Форта понял, что такое ;CODE и еще много вещей понял только из него.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 21:16 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
gudleifr писал(а):
Ethereal писал(а):
Чем они неудобны ?
Тем, что после компиляции FOO долго удивляешься, почему ничего не работает
У меня все работает, а ты пишешь не о том. Слово : в Фиг-Форте и в F-79 первым делом копирует CURRENT в CONTEXT. Поэтому указывать в тексте определения контекст все равно придется. И лучше это делать без лишних [ ]


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 21:21 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:13, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 22:14 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
gudleifr писал(а):
Т.е. слово ; опять копирует CURRENT в CONTEXT ?
Ничего оно не копирует.

В Forth-83 та-же песня. В описании слова ":" :
The search order is changed so that the first vocabulary in the search order is replaced by the compilation vocabulary.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Вт май 12, 2015 22:31 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:13, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Ср май 13, 2015 04:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Ну если ты начнешь определять еще одно слово по ":", то он снова автоматически укажет на CURRENT. А для интерпретации - ну да, куда угодно, куда ты последний раз его определял, туда и показывает. Перед интерпретацией укажи FORTH для определенности и всего делов. И к чему эти вопросы ? Форты Фиг,79,83 были именно такими.
Средства управления поиском из ANSI-Форта появились, кстати, именно в Форте-83, но значились там пока еще не в качестве обязательного, а в качестве "Experimental proposal" экспериментального предложения.

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


Последний раз редактировалось Ethereal Ср май 13, 2015 05:38, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Ср май 13, 2015 04:25 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
В Фиг-Форте, кстати, есть вещь, которая не ясна, даже после изучения кода. Например, слово TASK в глоссарии по Фиг-форт определялось, как ничего не делающее, для разграничения аппликаций, чтобы забыть полностью всю последнюю аппликацию по FORGET TASK . Говорилось также в разных статьях, что общей практикой тогда было Форт-сессию начинать с : TASK ; , чтобы по FORGET TASK вернуть все к изначальному состоянию.
The normal convention is to start a FORTH session with the dummy definition:
: TASK ; OK
The work can then be erased by . FORGET TASK. FORTH programs often start with a TASK definition, and finish with FORGET TASK to free the system for other work.

Проблема в том, что слово TASK в Фиг-форте для IBM PC уже определено и оно как раз последнее в его словаре, но забыть его по FORGET нельзя. Забор FENCE не позволяет. При попытке выполнить FORGET TASK не забывается вообще ничего. Это тот случай когда просто нужно знать, что имелось ввиду. По коду и не допрешь. Т.е. непонятно - это ошибка или все таки таков был замысел и имелось ввиду, что пользователь первым делом определит новое слово TASK и будет забывать уже его или будет начинать работу (например, интерпретацию экрана) вообще с FORGET TASK : TASK ; и FORGET TASK завершившись с ошибкой заодно почистит стек или ... что имелось ввиду ?

FORGET , кстати, в Фиг-форте какой-то безбашенный по своей простоте :
Код:
: FORGET
  CURRENT @ CONTEXT @ - 24 ?ERROR \ Если CURRENT != CONTEXT, то выход по ошибке
  [COMPILE] '
  DUP FENCE @ < 21 ?ERROR \ Если забор не позволяет, то выход по ошибке
  DUP NFA DP !            \ Поправили HERE
  LFA @ CONTEXT @ !       \ Поправили указатель на последнее слово в словаре CONTEXT
;

Интересно, что VOC-LINK , сшивающий все словари в список в Фиг-форте
есть и при создании словарей по VOCABULARY формируется. Но вот нужен-то
он только для FORGET и более нигде. И именно FORGET-у на него насрать.
Я этого алгоритма не догоняю. Что имелось ввиду ? Какой стиль работы ?
Раз проверяется на равенство CURRENT и CONTEXT, то имеется ввиду, что
словари есть. Но почему с ними обходятся так грубо ?
При каких условиях имелось ввиду применять такой FORGET ?

Впрочем, есть словечко COLD которое сразу и грубо возвращает Фиг-Форт
к состоянию ядра.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Ср май 13, 2015 10:50 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:14, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Ср май 13, 2015 23:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
И да, еще. В Фиг-форте крайне элегантно и непонятно зачем сделано так, что при
просмотре словаря сразу после него обходятся все его родители, в порядке
наследования, причем обходятся полностью.

А если сделать не так, то при переключении в новый словарь у нас внезапно пропадет все, включая базовые DUP DROP + - и т.д. По-моему, совершенно логично, что словарь, основанный на некоем родителе, является его ответвлением. То, что нужно перекрыть, будет перекрыто, а слова родительского словаря по меньшей мере не мешают, а вот их отсутствие может стать проблемой.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Чт май 14, 2015 22:44 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Hishnik писал(а):
Ethereal писал(а):
А если сделать не так, то при переключении в новый словарь у нас внезапно пропадет все, включая базовые DUP DROP + - и т.д.

Это не так. Потому как порядок поиска по словарям, ну как у Баранова-Ноздрунова написано, должен быть CONTEXT, CURRENT, FORTH. Так-что DUP DROP не пропадут ни в каком случае.
А в Фиг-Форте порядок явно в коде проставлен CONTEXT, CURRENT, но из-за полного просмотра родителей, при просмотре CONTEXT в итоге последним просматривается весь FORTH и при просмотре CURRENT последним просматривается тоже весь FORTH. Т.е на практике выходит CONTEXT, FORTH, CURRENT, FORTH.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Ошибки в известных реализациях Форта и их исправление.
СообщениеДобавлено: Чт май 14, 2015 22:52 
<удалено из-за того, что коллега mOleg этого не понял>


Последний раз редактировалось gudleifr Пн июн 08, 2015 21:14, всего редактировалось 1 раз.

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

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


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

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


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

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