> -- Rifat писал(а):
> Распарсить Oberon-0 и не сразу генерировать код, а создать синтаксическое дерево.

Да именно так. Компилятор "О", автор Свердлов, выполняет компиляцию для виртуальной стековой машины. Он умеет выдавать промежуточный код. Необходимо изменить генерацию команд, с учётом FORTH VM.

Определился с Forth движком. Вернулся к Ngaro VM.

Есть хороший и полный информационный ресурсhttp://forthworks.com/retro/, автор Charles Childers.

Важно, что ядро виртуальной машины можно использовать для различных языков программирования:

Ngaro VM Implementation Status (http://retroforth.org/docs/pdf/Implementations.pdf): Assembly, C, C#, F#, Forth, Go, Lisp, Java, Lua, Perl, PHP, Python, Retro, Ruby, Scheme, JavaScript.

В дереве исходных кодов  Ngaro VM имеется реализация для микроконтроллеров:

1) LPC1768 ( The mbed board used is the LPC1768, which has an ARM processor, 32 KiB of RAM, and 512 KiB of flash memory.)
2) AVR Arduino ( mega2560, mega328p, )
3) pic32 для проекта retroBSD.


Получится симпатичная технология кросс-платформенного программирования и переноса пользовательских алгоритмов.

Ссылки:
1. Charles Childers, Retro is a concatenative, stack based language with roots in Forth. //[электронный ресурс] .-http://forthworks.com/retro/

