一、Javac编译的过程
-
1、编译过程的第一步是词法分析,它负责将源代码转化为Token流。在这个过程中,会从源文件的一个字符开始,按照Java语法规范依次找出package,import,类定义,属性,方法定义等元素,最后构建出一个抽象语法树。
-
2、接下来是语法分析阶段,此阶段的目的是为了检查源代码是否符合Java语言规范,如果符合则会生成一棵抽象语法树。
-
3、语义分析阶段则是为了确保源代码在逻辑上的正确性。只有语义分析通过的代码才会被编译器认为是合法的。
-
4、成功通过语义分析的代码会被转换成中间代码。这种中间代码是一种简单的、易于处理的代码,不依赖于任何特定的机器或操作系统。
-
5、最后是优化阶段,编译器会对中间代码进行各种优化,以提升程序运行的效率。
二、Javac编译器的结构
Javac编译器的基本结构主要包括:词法分析器、语法分析器、语义分析器、中间代码生成器和优化器等部分。
2.1 词法分析器
Javac编译器的词法分析器是编译过程的第一个阶段,负责将源代码转化为Token流。这个过程是通过Lexer类及其实现类Scanner完成的。
在这个阶段,词法分析器会从源文件的一个字符开始,按照Java语法规范依次找出package,import,类定义,属性,方法定