Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:51

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Notfound в Nova
Автор Сообщение
  Заголовок сообщения:  Notfound в Nova  Ответить с цитатой
При просмотре записей на форуме касательно моего форта несколько раз поднималась "предъява" к механизму notfound.
Явная вариация на тему "не читал, но осуждаю".

Распишу тут.
Реализация данного механизма в Nova-forth реализована совершенно иначе, чем в СПФ.
Мой вариант перебирает словари на стеке контекста и вызывая из них соответствующий код
до тех пор пока один их кодов не завершится успехом ИЛИ
не кончатся словари.

Реализация:
Код:
: NOTFOUND-GENERATE    \ addr u -- ???
VOC0 @ CONTEXT 2>R   \ R: -- down top \ переносим на стек возвратов указатели на дно и вершину стека контекста
2>R \ R: down top -- down top addr u
BEGIN
2 RPICK @ \ получаем LFA словаря из стека возвратов
L>notfoundFA @ \ достаем указатель на код обработчика
DUP IF 2R@ ROT EXECUTE THEN \ если обработчик есть (не равен 0) подсовываем ему строку и вызываем
\ если обработчик возвратил ИСТИНУ (не 0), то уходим
IF RDROP RDROP RDROP RDROP EXIT THEN
2R>
2R@ XOR WHILE \ если текущий указатель равен указателю дна стека контекста, уходим из цикла
R> CELL- >R \ смещаем текущий указатель стека словарей ближе к указателю дна стека
2>R
REPEAT
-2003 THROW
;


Короче, мой вариант в отличие от СПФ-кого работает за исчислимое время и не зависит от числа слов в словаре т. е. просто не страдает херней.
Сообщение Добавлено: Пт июл 10, 2020 17:02

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


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