我正在阅读 Joshua Engel 的《Programming for Java Virtual Machine》一书,其中作者提供了“一种 JVM 的汇编语言”,称为 Oolong。
据我了解,这是一种被编译成java字节码的语言,它与原始的java字节码非常相似(那里使用了大量的字节码操作码)。如果是这样那为什么它被称为汇编语言呢?这是因为它是低级语言并且看起来像字节码吗?
另一个问题是关于茉莉花的。正如维基百科所说,它是“一个免费的开源汇编器,使用 Java 虚拟机指令集从人类可读的类似汇编器的语法创建类文件”。Jasmin 文件(也有 .j 扩展名)的语法看起来像 Oolong 的语法。那里用的吗?
Joshua Engel 的 Oolong 1是 JVM 的汇编语言。
...为什么叫汇编语言?
您最好在(例如)维基百科中查找“汇编语言”的含义。它本质上是一种在“语句”和目标机器的机器指令之间具有直接一对一映射2 的语言。如果您将 JVM 视为目标机器,则 OOlong 符合此描述。(乌龙语句和JVM字节码指令之间存在一对一的映射关系。)
Jasmin 文件(也有 .j 扩展名)的语法看起来像 Oolong 的语法。那里用的吗?
我见过消息来源说 Oolong 的语法是“基于 Jasmin”,但我找不到任何详细描述该语法的独立文档。
如果您有兴趣查看乌龙,这个问题有关于从哪里下载它的详细信息:
1 - 还有另一种不相关的乌龙编程语言;请参阅https://github.com/thesquaregroot/oolong。还有 Castegren & Wrigstad 的OOlong:可扩展并发对象微积分。
2 - 我过于简单化了。某些汇编语言支持“宏”,其中单个源语句可以映射到多个目标指令。阅读维基百科参考。