То, что вы спрашиваете, - это метод реализации виртуальной машины. Чтобы запустить Java-код в целом, вы должны реализовать следующее:
- Первые несколько шагов, я думаю, вы уже сделали (спроектируйте / опишите семантику языка, создайте AST и выполните требуемую проверку кода)
- Вам необходимо сгенерировать свой байт-код, оригинальная Java работает точно так же, она генерирует другое представление исходного кода, от читабельного человеком до машиночитаемого.
Здесь вы можете увидеть, как выглядит байт-код Java http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/
- Вам необходимо реализовать виртуальную машину стека, которая читает байт-код и запускает его для выполнения.
Итак, как вы видите, у вас должно быть 3 отдельных компонента (проекта) для вашей задачи:
1. Языковая грамматика
2. Компилятор (генератор байт-кода)
3. Виртуальная машина (интерпретатор байт-кода)
P.S. У меня есть опыт создания крошечного подобного Java-компилятора с нуля (определение грамматики с помощью ANTlr, реализация компилятора, реализация виртуальной машины), поэтому, возможно, я смогу поделиться с вами дополнительной информацией (даже исходным кодом), если вам нужно что-то конкретное