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/