是否有一个学习JVM字节码指令集的好地方。该规范可能也许是一些教程?
我问,因为我想为它设计一个生成JVM字节码的玩具语言和编译器。
感谢您的知识,也许谷歌搜索。
答案 0 :(得分:23)
Java字节码规范的一个很好的参考是The Java Virtual Machine Specification。
请参阅Chapter 4. The class File Format和Chapter 6. The Java Virtual Machine Instruction Set。
答案 1 :(得分:11)
更多“图形”解释,IBM开发人员的工作:Understanding bytecode makes you a better programmer。
答案 2 :(得分:4)
答案 3 :(得分:4)
本书Programming for the Java Virtual Machine解释了JVM指令集以及如何为其编写代码。它还引入了一个名为Oolong的字节码汇编程序,我无法下载。但是,您可以使用乌龙的前身Jasmin。基本上,你编写一个包含说明的文本文件,Jasmin将吐出一个.class文件。这本书于1999年出版,但它仍然是对VM的良好而温和的介绍。
答案 4 :(得分:3)
Java Virtual Machine Specification是一个很好的起点。
见第4章The class File Format。这些更新涵盖了自第二版以来添加的新属性。
答案 5 :(得分:2)
首先,我建议使用您的语言生成Java代码。
这将使阅读和调试变得更加简单。
答案 6 :(得分:2)
或许查看Preon's example on how to parse a Java class file。它在Java对象模型中具有相当完整的字节码表示。
答案 7 :(得分:2)
该规范的新版本已经发布:
The Java Virtual Machine Specification, Java SE 7 Edition
这一新增内容确实排除了 Java编程语言概念这一章,这些人可能会或可能不会觉得有用。请参阅规范第二版中该章的here。
答案 8 :(得分:1)
这有点专业,但here是关于如何优化生成的字节码以便在JVM上运行的在线演示。它是在最近的JVM Languages Summit次会议上提出的。 InfoQ从该会议中获得了a collection of presentations,这可能对想要在JVM上提出语言的人有所帮助(或者看看已经完成了什么)。