Я пишу игрушечный интерпретатор с REPL на Java. Я хотел бы сгенерировать байт-код из языка и запустить его вместо интерпретации AST и его запуска.
Так как моя Java немного ржавая, возможно ли запускать сгенерированный байт-код на лету на JVM?
Вы можете использовать java.lang.Classloader.defineClass (), который превращает байт-код в объект Class. Вы можете вызвать newInstance () для получающегося объекта Class, и все готово.
Посмотрите на Javassist, который содержит компилятор фрагментов, позволяющий вам компилировать фрагменты Java в байт-код и определять их как метод в классе, который затем можно вызывать.