java - JVM 中的乌龙是什么?

标签 java jvm oolong

我正在阅读 Joshua Engel 的“Programming for Java Virtual Machine”一书,其中作者提供了一种名为 Oolong 的“JVM 汇编语言”。

据我所知,这是编译成 java 字节码的语言,它与原始 java 字节码非常相似(那里使用了大量字节码操作码)。如果是这样,那为什么叫汇编语言呢?那是因为它是低级语言并且看起来像字节码吗?

另一个问题是关于 Jasmin 的。正如维基百科所说,它是“一个免费的开源汇编程序,可以使用 Java 虚拟机指令集从人类可读的类似汇编程序的语法中创建类文件”。 Jasmin 文件(也有 .j 扩展名)的语法看起来像乌龙的语法。在那里用?

最佳答案

Oolong 是 JVM 的汇编语言。

... why is it called assembly language?

您最好在(例如)Wikipedia 中查找“汇编语言”的含义。 .它本质上是一种语言,在“语句”和目标机器的机器指令之间具有直接的一对一映射1。如果您将 JVM 视为目标机器,则 OOlong 匹配此描述。 (乌龙语句和JVM字节码指令是一一对应的。)

The syntax of Jasmin files(which also have .j extension) looks like Oolong's syntax. Is it used there?

我看到消息说乌龙的语法“基于 Jasmin”,但我找不到任何详细描述该语法的独立文档。

如果你有兴趣看乌龙,这个 SO 问题有从哪里下载它的详细信息:


1 - 我过于简单化了。一些汇编语言支持“宏”,其中单个源语句可以映射到多个目标指令。阅读维基百科引用资料。

关于java - JVM 中的乌龙是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132377/

相关文章:

java - 跟踪 java 字节码流

cassandra - Cassandra的最佳JVM设置

c++ - iPhone上C++开源游戏引擎推荐

java - 对象的哈希码数组

java - 将装饰器模式应用于 Java String 类

java - 我如何在带有 spring 的 servlet 过滤器中使用 @Transactional 和 sessionFactory bean

java - 输出二维数组中的值不起作用

java - 为什么即使对于开箱即用的 Spring Boot 管理员,Java 进程的 RES 内存也会保持缓慢增长?