Java バイトコードを実行できる抽象的なマシンに詳しい人がいるかどうか疑問に思っていました。拡張できるものを探していることに注意してください。抽象マシンとは、セマンティクスを指定する必要があるため、JVM を意味するものではありません。
具体的には、実際に自分ですべての命令をシミュレートする必要なく、特定の時点でスタックに何があるかを追跡する方法を探しています。これに適したフレームワークを知っている人はいますか?
Java バイトコードを実行できる抽象的なマシンに詳しい人がいるかどうか疑問に思っていました。拡張できるものを探していることに注意してください。抽象マシンとは、セマンティクスを指定する必要があるため、JVM を意味するものではありません。
具体的には、実際に自分ですべての命令をシミュレートする必要なく、特定の時点でスタックに何があるかを追跡する方法を探しています。これに適したフレームワークを知っている人はいますか?
MLJVM プロジェクトを検討してください。私は内部を実際に見たことはありませんが、潜在的にセマンティクスを拡張または実験できるような方法で作成された JVM 実装のようです。
これはやや古く、JVM のサブセットのみを実装している可能性がありますが、セマンティクスの実験を実際に検討している場合、JVM 全体が必要になる可能性は低いと思います。
または、多くの場合、Jikes Research Virtual Machineが出発点として適しています。「VM」と「Abstract Machine」の間の境界線はある時点でぼやけ始めますが、Jikes はその境界線に近いのではないかと思います。