Re[8]: Ссылки по Форту
От: DJ KARIES Россия  
Дата: 05.03.05 23:48
Оценка: 63 (1)
Здравствуйте, Gaperton, Вы писали:

G>Я в курсах, я знаю форт хорошо. Писал несколько форт-машин сам в разное время. Последнее время я его использую в качестве движка выполнения для разнообразных кастомных скриптовых языков (считаю это самым простым способом из известных организовать рантайм).

Можно ссылочки на такие проекты?
Интересно увидеть подобные реализации.

G>Но мне не хватало производительности шитого кода — а здесь — компиляция. Огромное спасибо, это мега-тулза.

Тут ещё такой прикол: т.к. компиляция в машкод, можно отвлечься от чисто стековой архитектуры и приплести использование других регистров процессора, включая все РОН, регистры MMX, SSE, FPU.

Насчёт скорости.
Т.к. компиляция происходит на лету, указатели можно прошивать в код, ускоряя этим работу.

В Retroforth есть 2 словаря: forth и macro.
При компиляции слова, если оно найдено в словаре macro, оно сразу же исполняется.
Это аналог IMMEDIATE в других фортах.
И фишка в том, что в тех фортах СЛОВО либо IMMEDIATE, либо нет, а в Retroforth могут присутствовать сразу обе версии слова, позволяя одному слову исполняться в диалоговом режиме и инлайниться в код при компиляции.

Регистровая модель взята из ColorForth. Т.е. код ничем не отличается от любого бинарника, кроме соглашения о стековой архитектуре, где используются только лишь регистры eax, esi и esp.
см. TheRetroBook.txt.

Register Use
-------------------------------
EAX Top of Stack
ESI Data Stack
[ESI] Second item on Stack
ESP Return Stack
-------------------------------


G>Кстати, какая на нее лицензия?

Абсолютно свободная. Тип лицензии — public domain. Т.е. делаешь всё, что хочешь.
см. на том сайте www.retroforth.org раздел про лицензию.

Моя версия ref и giref также абсолютно свободна.
Единственное требование — не убирать информацию об авторе.



И ещё.
Разрабатываемая сейчас версия RetroForth 8 более лажовая, чем 7.6.
ИМХО, лучше за отправную точку взять v7.6, к ней приплюсовать модули из ref.
Или юзать ref, где также можно поместить все модули в один exe/dll.
ntr soft: www.dkdens.narod.ru :: giref: www.retroforth.org/board/index.php?topic=177.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.