Форт очень интересный язык. На нём легко сделать Форт-ассемблер, Форт-Бейсик и даже Форт-Паскаль (видел), любые проблемно-ориентированные словари, низкоуровневые вещи. Я просто не люблю писать на Форте, мозги наизнанку, массаракш ;-) И вероятность допустить ошибку очень высокая, даже ИМХО выше, чем на асме.
Прошу желающих высказаться каким должен быть Форт для ZX. Я начну.
- Нужна возможность порождать прямой шитый код - для компактности (вызов слова будет занимать 2 байта - адрес слова) и подпрограммный код - для скорости (как в HL ZX Forth). Выглядеть это может так:
Код:threaded 2 dup + . ( --> CALL INTERPRET : DW LITERAL, 2, DUP, PLUS, PRINT ) direct 2 dup + . ( --> CALL LITERAL : DW 2 : CALL DUP : CALL PLUS : CALL PRINT )
- Обязательно нужен целевой компилятор со смарт-линкером, чтобы в отчуждаемую (stand-alone) программу включались только необходимые слова, а не всё ядро.
Давайте вместе продолжим список. Как бы вы стали реализовывать свой Форт? Взяли бы какую-нить готовую реализацию и жёстко отрефакторили? Какую именно? Их много. На какой стандарт Форта нужно ориентироваться в первую очередь? FORTH-77? FORTH-83? ANSI?