Java字节码规范

时间:2008-12-11 00:39:21

标签: java jvm bytecode

是否有一个学习JVM字节码指令集的好地方。该规范可能也许是一些教程?

我问,因为我想为它设计一个生成JVM字节码的玩具语言和编译器。

感谢您的知识,也许谷歌搜索。

9 个答案:

答案 0 :(得分:23)

答案 1 :(得分:11)

更多“图形”解释,IBM开发人员的工作:Understanding bytecode makes you a better programmer

答案 2 :(得分:4)

同样有用的是javap反汇编程序和字节码操作框架,例如ASMBCEL,即使你想要做的就是验证你的类。

答案 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上提出语言的人有所帮助(或者看看已经完成了什么)。