我们可以通过javac
命令将Java程序的源代码编译成Java字节码,即我们常说的class文件。这是我们通常意义上理解的编译。
但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Java虚拟机做的,这个过程也叫编译。是更深层次的编译。
在编译原理中,把源代码翻译成机器指令,一般要经过以下几个重要步骤:
根据完成任务不同,可以将编译器的组成部分划分为前端(Front End)与后端(Back End)。
前端编译主要指与源语言有关但与目标机无关的部分,包括词法分析、语法分析、语义分析与中间代码生成。
后端编译主要指与目标机有关的部分,包括代码优化和目标代码生成等。
我们可以把将.java
文件编译成.class
的编译过程称之为前端编译。把将.class
文件翻译成机器指令的编译过程称之为后端编译。
1.javac是什么?
(1)javac是一种编译器,能够将一种语言规范转换成另一种用语言规范,通常编译器是将便于人们理解的语言规范成机器容易理解的语