JVMS Specification(2)-Compiling for the Java Virtual Machine

Subsections

2       Compiling for the Java Virtual Machine

2.1        Format of Examples

2.2        Use of Constants, Local Variables, and Control Constructs

2.3        Arithmetic

2.4        Accessing the Runtime Constant Pool

2.5        More Control Examples

2.6        Receiving Arguments

2.7        Invoking Methods

2.8        Working with Class Instances

2.9        Arrays

2.10      CompilingSwitches

2.11      Operationson the Operand Stack

2.12      Throwingand Handling Exceptions

2.13     Compilingfinally

2.14      Synchronization

2.15      Annotations


THE Java virtual machine is designed to support the Java programminglanguage.

Oracle’s JDK software contains both a compiler from source code written inthe

Java programming language to the instruction set of the Java virtualmachine, and a

runtime system that implements the Java virtual machine itself.Understanding how

one compiler utilizes the Java virtual machine is useful to theprospective compiler

writer, as well as to one trying to understand the Java virtual machineitself. The

numbered sections in this chapter are not normative.

Note that the term “compiler” is sometimes used when referring to atranslator

from the instruction set of a Java virtual machine to the instruction setof a specific

CPU. One example of such a translator is a just-in-time (JIT) codegenerator,

which generates platform-specific instructions only after Java virtualmachine

code has been loaded. This chapter does not address issues associated withcode

generation, only those associated with compiling source code written inthe Java

programming languageto Java virtual machine instructions.

JVM被设计成支持java编程语言,Oracle JDK软件支持包括两套,一套被java语言编写的源码编译成虚拟机指令集合的编译器。

一套是JVM自己执行时环境。

理解一个编译器怎样应用在JVM中,对一个未来编译器工作者是非常实用的。这也是非常好的理解JVM本身自己。

注意。提到的编译器有时是指从JVM指令转换到CPU特殊的机器指令,比方JIT代码生成器,用来生成平台特殊的指令当JVM代码被载入以后。

这章不讨论这样的代码生成器,仅仅讨论被java程序语言编写的源码转换为JVM指令。

1.1    Formatof Examples

This chapter consists mainly of examples of source code together withannotated

listings of the Java virtual machine code that the javac compiler in Oracle’sJDK

release 1.0.2 generates for the examples. The Java virtual machine code iswritten in

the informal “virtual machine assembly language” output by Oracle’s javap utility,

distributed with the JDK release. You can use javap to generate additionalexamples

of compiled methods.

The format of the examples should be familiar to anyone who has readassembly

code. Each instruction takes the form

实例主要包含源码和JVM代码凝视列表,JVM代码凝视列表是又oracle JDK 1.0.2版本号来生成。你能够使用javap命令来生成编译方法的样例。

这个样例的格式对读取汇编代码的人都非常熟悉,每一个指令例如以下格式。

<index> <opcode> [<operand1> [<operand2>...]] [<comment>]

The <index>

posted on 2017-07-11 09:59  ljbguanli  阅读(115)  评论(0编辑  收藏  举报