Абстрактная машина для байт-кода Java
Мне было интересно, знаком ли кто-нибудь с абстрактной машиной, способной выполнять Java-байт-код. Заметьте, я ищу что-то, что можно расширить, и под абстрактной машиной я не имею в виду JVM, так как мне нужно указать семантику.
В частности, я ищу способ отслеживать, что будет в стеке в данный момент времени, без необходимости фактически имитировать все инструкции самостоятельно. Кто-нибудь знает хорошие рамки для этого?
1 ответ
Подумайте над тем, чтобы посмотреть на проект MLJVM. На самом деле я никогда не смотрел на внутренние компоненты, но, похоже, это реализация JVM, созданная таким образом, что можно потенциально расширить или поэкспериментировать с семантикой.
Это может быть несколько устаревшим и реализовывать только подмножество JVM, но я предполагаю, что если вы действительно хотите поэкспериментировать с семантикой, вряд ли вам понадобится вся JVM.
Кроме того, виртуальная машина Jikes Research часто является хорошей отправной точкой. Границы между "ВМ" и "Абстрактной машиной" в какой-то момент начинают стираться, и я подозреваю, что Джайкс находится близко к этой линии, где бы она ни находилась.