Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
Я согласен, прямой шитый код иногда может оказаться быстрей подпрограммного. Это когда NEXT сразу передаёт управление на следующее слово одной асмовской командой, такой случай описан у Черезова (каждется?) по мере развития его SP-Forth. Он экспериментировал и пробовал разные виды шитого кода, и версия с прямым борола по скорости подпрограммный. Но это на процессоре x86.
на z80 тоже есть одна такая асмовская команда - ret
правда, именно для форта применить сложно, оба стека надо делать программными
этот трюк больше для специфического шитого кода (динамическая генерация например)

насчёт (псевдо)фортокомпилятора для z80 у меня была такая задумка
стек параметров - аппаратный стек, причём верхнее число храним в регистре hl
стек возвратов - как-нибудь программно организуем, вызов относительно медленный
то есть схема ради скорости выполнения длинных цепочек примитивов прежде всего
по возможности примитивы не вызывать, а вставлять короткий код напрямую
только процедуры и сложные и длинные примитивы делать через call
(и возможно, в обрамлении вспомогательных коротких команд)
вызываемая процедура с адресом возврата в СП будет разбираться сама

то есть твой пример:
Код:
2 dup + .
компилируется в:
Код:
push hl: ld hl,2: push hl: pop de: add hl,de: call DOT - без оптимизации
push hl: ld hl,4: call DOT - c максимальной оптимизацией
а еще хороший оптимизатор сможет верхнее число держать не в hl, а как там по ходу дела получится

- - - Добавлено - - -

Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
Форт хорош тем, что позволяет создавать легко макро-языки.
притом в диалоговом режиме интерпретатора при скорости, больше характерной для компиляторов

- - - Добавлено - - -

я по этой книжке врубался в форт:
http://publ.lib.ru/ARCHIVES/S/SEMENO...nov_Yu.A..html
там есть даже исходники простого интерпретатора для пц