2015-02-20 3 views
0

Существуют ли какие-либо фреймворки, подобные LLVM или Parrot Compiler Toolkit, которые упрощают компоновку писем с помощью JVM?Лучшие фреймворки или методы для написания компиляторов, нацеленных на JVM?

Я надеюсь, что у рамки будет AST для генератора кода. Таким образом, я мог бы написать интерфейс для интерфейса, который создает AST на основе библиотек фреймворка, тогда структура может сделать все остальное и скомпилировать в байт-код JVM.

Polyglot выглядит как проект, который был бы полезен для того, что я пытаюсь сделать.

+0

все еще находится в разработке, но ребята из jruby уже экспериментируют с трюфелем/граалем. возможно, это информативно: https://github.com/jruby/jruby/wiki/Truffle – the8472

+0

http://asm.ow2.org/doc/faq.html#Q11 – xmojmr

+0

Я обнаружил, что Eclipse JDT ASTParser может предоставить общий AST библиотека для Java. – ruben2020

ответ

1

Для начала я бы сгенерировал код Java, который вы можете скомпилировать (опционально в памяти). Это сэкономит вам много горя в плане отладки, проверки ошибок и времени разработки. После того, как у вас есть что-то стабильное и работоспособное, вы можете посмотреть, как повысить эффективность, написав вместо этого байтовый код.

Эта библиотека Java Runtime Compiler позволяет вам скомпилировать класс и вложенные классы в памяти во время выполнения. Когда вы отлаживаете, он может записывать файлы на диск, позволяя вам входить в сгенерированный код.

Вы получаете сообщения о высоком уровне, описательные сообщения об ошибках и можете видеть, что именно пытается сделать код.

0

Это предложение

Я надеюсь, что в рамках иметь AST для генератора кода.

говорит, что у вас есть длинный путь перед вами.

Только одна неудобная истина: Нет такой вещи, как АСТ.

Когда вы разрабатываете свой язык, вы каким-то образом определяете набор возможных деревьев синтаксиса. Подумайте, насколько маловероятно, чтобы кто-то написал генератор кода для вашего языка, прежде чем вы его даже разработали.

Смежные вопросы