JVM バイトコード命令セットを学習するのに最適な場所はありますか。おそらく仕様といくつかのチュートリアル?
おもちゃの言語と JVM バイトコードを生成するコンパイラを設計したいのでお願いします。
あなたの知識とおそらくグーグルに感謝します。
Java バイトコード仕様の参考資料としては、The Java Virtual Machine Specificationがあります。
Chapter 4. The class File FormatとChapter 6. The Java Virtual Machine Instruction Setを参照してください。
もう少し「グラフィック」な説明、IBM 開発者の仕事:バイトコードを理解すると、より優れたプログラマーになります。
『Java仮想マシンのプログラミング』では、JVM命令セットとそのコードの記述方法について説明しています。また、ダウンロードできなかったウーロン茶というバイトコードアセンブラも紹介しています。ただし、ウーロン茶の前身であるジャスミンは使用できます。基本的に、指示を含むテキストファイルを作成すると、Jasminは.classファイルを吐き出します。この本は1999年に発行されましたが、それでもVMの優れた穏やかな紹介です。
javap逆アセンブラーや、 ASMやBCELなどのバイトコード操作フレームワークも役立ちます。クラスを検証するだけでも役に立ちます。
Java 仮想マシン仕様は、出発点として適しています。
Chapter 4 The class File Formatを参照してください。アップデートは、第 2 版が作成されてから追加された新しい属性をカバーしています。
おそらく、Java クラス ファイルの解析方法に関する Preon の例を確認してください。これは、Java オブジェクト モデルでバイトコードをかなり完全に表現しています。
まず、あなたの言語から Java コードを生成することをお勧めします。
これにより、読み取りとデバッグがはるかに簡単になります。
これはもう少し専門的ですが、 JVM で実行するために生成されたバイトコードを最適化する方法に関するオンライン プレゼンテーションを次に示します。最近のJVM Languages Summitカンファレンスで発表されました。InfoQ には、そのカンファレンスでのプレゼンテーションのコレクションがあり、JVM で言語を取り上げたい (または既に行われたことを確認したい) 人にとって役立つかもしれません。