如何让java的语法规则适应java虚拟机的語法规则这个任务由javac编译器来完成java语言规范转换成java虚拟机语言规范。
- 词法分析器:将源码转换为Token流
- 将源代码划分成一个个Token(找出java语言中的ifelse,for等关键字)
- 语法分析器:将Token流转化为语法树
- 将上述的一个个Token组成一句句话(或者说成一句句代码块)检查这一句句话是不是符合Java语言規范(如if后面跟的是不是布尔判断表达式)
- 语义分析器:将语法树转化为注解语法树
- 将复杂的语法转化成简单的语法(; ,(这部分又分为读取第一個token,为zxy,判断下一个token是否为“.”是的话接着读取下一个plete()中完成(默认构造器也是在这里完成的)。
p.Flow 数据流分析和替换等价源代码的分析(即上面的进一步语义分析)
目的:将注解语法树转化成字节码并将字节码写入*.class文件。
- 将java的代码块转化为符合JVM语法的命令形式这就是字節码
- 按照JVM的文件组织格式将字节码输出到*.class文件中
发布了11 篇原创文章 · 获赞 19 · 访问量 7万+