Forth
http://fforum.winglion.ru/

Вторичная Forth-машина
http://fforum.winglion.ru/viewtopic.php?f=2&t=2944
Страница 5 из 6

Автор:  gudleifr [ Чт июл 04, 2013 17:25 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  gudleifr [ Вт янв 16, 2018 02:35 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  gudleifr [ Вт янв 16, 2018 02:47 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  Ethereal [ Вт янв 16, 2018 15:04 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

gudleifr писал(а):
Без STATE...
Доводы против:
У Мура в cmForth не было STATE. Его бы твои доводы не вштырили.

: INTERPRET ( n n) >IN 2! BEGIN 1 -' IF NUMBER ELSE EXECUTE THEN AGAIN ; RECOVER

: ] BEGIN 2 -' IF 1 -FIND IF NUMBER \ LITERAL
ELSE DUP @
DUP 140040 AND 140040 = OVER 170377 AND 140342 XOR AND
SWAP 170040 AND 100040 = OR IF @ 40 XOR ,C
ELSE ,A THEN THEN
ELSE EXECUTE THEN AGAIN ; RECOVER

: [ POP DROP ;

: : CREATE -1 ALLOT SMUDGE ] ;

и все. Крутится вечный цикл INTERPRET , он может исполнить и слово ] , слово ] это вечный цикл компилятора , а слово [ это выход из компилятора через RDROP EXIT

Автор:  gudleifr [ Вт янв 16, 2018 15:47 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  gudleifr [ Вт янв 16, 2018 17:10 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  Victor__v [ Вт янв 16, 2018 17:50 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

Ещё вариант разделения компилятора и инрепретатора

VECT DOING
VECT NOTFOUND
: INTERPRET
BEGIN
PARSE-NAME DUP WHILE
SFIND IF DOING ELSE NOTFOUND THEN
REPEAT
2DROP
;

: ] ['] compilation TO DOING ['] NOTF,, TO NOTFOUND ;
: [ ['] EXECUTE-INTEPR TO DOING ['] NOTF-INTR TO NOTFOUND ;

: ; RET, [COMPILE] [ ;

Как-то так

Автор:  _KROL [ Вт янв 16, 2018 17:53 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

gudleifr писал(а):
Интереснее посмотреть где эта "кнопка" расположена в "цикле разработки по Броуди"
А зачем она?.. С другой стороны, обычным "[" тогда можно сломать всю систему за раз, и никакой ФИГ не разберётся куда она потом вернётся :)

Victor__v писал(а):
...
Прикольно) Только обработки чисел пока нету.

Автор:  gudleifr [ Вт янв 16, 2018 17:59 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  Victor__v [ Вт янв 16, 2018 17:59 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

_KROL писал(а):
gudleifr писал(а):
Интереснее посмотреть где эта "кнопка" расположена в "цикле разработки по Броуди"
А зачем она?.. С другой стороны, обычным "[" тогда можно сломать всю систему за раз, и никакой ФИГ не разберётся куда она потом вернётся :)

Victor__v писал(а):
...
Прикольно) Только обработки чисел пока нету.


а
Цитата:
VECT NOTFOUND
для чего тогда, а?

Автор:  _KROL [ Вт янв 16, 2018 18:07 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

Цитата:
VECT NOTFOUND
Понятно, ТАМ, если не число(при подключенном NUMBERS), вызывается исключение.

Автор:  Hishnik [ Вт янв 16, 2018 23:26 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

Victor__v писал(а):
а
Цитата:
VECT NOTFOUND
для чего тогда, а?


Как в классическом анекдоте - сахар в баночке из-под чая, на которой приклеена бумажка "соль". И правда, где же еще числа обрабатывать? Конечно, в NOTFOUND! :D Причем даже бумажки "обработка чисел" нет, надо проникнуться сектантскими сказками и принять такой способ как истину. Ну и свой обработчик NOTFOUND научиться писать так, чтобы не сломать то, что на него уже навесили.

Автор:  Victor__v [ Ср янв 17, 2018 09:12 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

Hishnik писал(а):
Victor__v писал(а):
а
Цитата:
VECT NOTFOUND
для чего тогда, а?


И правда, где же еще числа обрабатывать? Конечно, в NOTFOUND! :D

А где ещё? Если это слово отвечает за обработку не распознанных строк.

Hishnik писал(а):
Ну и свой обработчик NOTFOUND научиться писать так, чтобы не сломать то, что на него уже навесили.


Это особенности примера.
К тому же.
Кто-то на любое возмущение тем, что этот NOTFOUND не расширяем, скажет а зачем его расширять?

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

Автор:  gudleifr [ Ср янв 17, 2018 11:27 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

<Удалено по причине большого количества флуда в теме>

Автор:  Hishnik [ Ср янв 17, 2018 11:29 ]
Заголовок сообщения:  Re: Вторичная Forth-машина

Victor__v писал(а):
А где ещё? Если это слово отвечает за обработку не распознанных строк.

Очевидный вариант - ввести NUMBER в явном виде. А вот если и NUMBER не смог разобрать это, тогда уже NOTFOUND.

Victor__v писал(а):
Кто-то на любое возмущение тем, что этот NOTFOUND не расширяем, скажет а зачем его расширять?

А ошибки игнорировать и пытаться продолжить или останавливаться с исключением?

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