Forth http://fforum.winglion.ru/ |
|
структура словарей и поле флагов http://fforum.winglion.ru/viewtopic.php?f=8&t=3115 |
Страница 4 из 4 |
Автор: | Victor__v [ Вс апр 09, 2017 21:07 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Цитата: я знаю что ALSO делает Это все знают, вопрос в том как. Примерный код слова also : ALSO GET-ORDER OVER SWAP 1+ SET-ORDER ; Круто, что сказать. А во всём виноваты списки всё же время говорят, СТЕК КОНТЕКСТА Цитата: По-моему, чем реверсить чужую форт-систему, проще написать свою. Считайте, я учусь на чужих ошибках :_) |
Автор: | vpn289 [ Вс апр 09, 2017 21:18 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Victor__v писал(а): Это все знают, вопрос в том как. Примерный код слова also : ALSO GET-ORDER OVER SWAP 1+ SET-ORDER ; Круто, что сказать. А во всём виноваты списки всё же время говорят, СТЕК КОНТЕКСТА Да не так и сложно. Коряво немного, да. Уж как спроектировано. Код: : ALSO GET-ORDER ( wid1 ... widn n ) 1+ >R DUP R> ( wid1 .. widn widn n+1 ) SET-ORDER ; Так, наверное, понятнее. Списки тут не причем. Кому-то очень нравится дергать стек. А списки - очень ценная вещь. |
Автор: | Victor__v [ Вс апр 09, 2017 21:33 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Если бы тут был не список, а стек можно было бы сделать иначе. К примеру, Код: : ALSO CONTEXT @ CELL +TO CONTEXT CONTEXT ! ; Цитата: Списки тут не причем. Кому-то очень нравится дергать стек. А списки - очень ценная вещь Списки как раз причём. из-за них такая реализация ALSO вышла Стек контекста здесь выглядит уместней , чем список контекста. Против списков лично ничего не имею. Вещь полезная. |
Автор: | vpn289 [ Вс апр 09, 2017 23:50 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Victor__v писал(а): Если бы тут был не список, а стек можно было бы сделать иначе. К примеру, Код: : ALSO CONTEXT @ CELL +TO CONTEXT CONTEXT ! ; Что есть +TO? Предполагаю, что это такая префиксная запись +! Но смысл всего построения от меня утекает. CONTEXT @ дает нам контекстный список, CELL - по-идее размер ячейки, +TO CONTEXT как надо понимать? Может быть должно быть CONTEXT CELL +? Не, кажется догадываюсь. CONTEXT у вас кладет адрес вершины какбы стека, CELL +TO CONTEXT призван этот адрес увеличить на размер ячейки. Идея понятна. Два вопроса, как двигаться в обратном направлении? То-есть слово PREVIOUS. Каков размер этого стека и как предполагается отрабатывать выход за пределы этого стека? Лишний PREVIOUS и система рухнет. Каково устройство слова CONTEXT в Вашем варианте? Цитата: Списки как раз причём. из-за них такая реализация ALSO вышла Стек контекста здесь выглядит уместней , чем список контекста. Против списков лично ничего не имею. Вещь полезная. В SPF как раз стек контекстов. Зарезервирован массив, в который словом ALSO пушится очередной список. Вернее, выполняется DUP на вершине стека списков. Слово, определенное через VOCABULARY, подменяет собой вершину стека списков. Я же в своей системе отказался от стека списков вообще. Если надо производить поиск по более чем одному списку, списки сцепляются. Ну и когда надо, список можно отцепить. Автоматически пропадают ограничения на количество последовательных списков (контекстов) для поиска. Хотя пока более двух не понадобилось. И опять, по-моему, недоразумения с терминологией. В чем отличие стека от списка? А стека контекста от списка контекста? |
Автор: | Victor__v [ Пн апр 10, 2017 09:36 ] |
Заголовок сообщения: | Re: структура словарей и поле флагов |
Код: Каково устройство слова CONTEXT В моём варианте это VALUE-переменная Цитата: как двигаться в обратном направлении? То-есть слово PREVIOUS Как? Код: : PREVIOUS CONTEXT 0! [ CELL NEGATE LIT, ] +TO CONTEXT ; Цитата: Каков размер этого стека В СПФ восемь ячеек, пусть будет также, хотя обычно требуется меньше. Цитата: как предполагается отрабатывать выход за пределы этого стека? Лишний PREVIOUS и система рухнет вариант 1) Никак. вариант 2) Поскольку по-любому потребуется слово дно-стека-контекста, то можно ввести проверку, на исчерпаемость. Вопрос в другом, насколько эта проверка вообще нужна? Цитата: стека списков Копался в СПФ когда-то по этому поводу, переход на след. словарь там что-то вроде @ cell+ , Цитата: В чем отличие стека от списка? А стека контекста от списка контекста? В организации работы с памятью. След. элемент стека это либо ячейка+ либо ячейка- След. элемент списка можно взять по-разному. К примеру cell+ @ или @ cell- или ещё как-то. Список предполагает расширяемость, стек нет. Короче, стеком сделать проще. Расширить тоже можно при необходимости. |
Страница 4 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |