第四章 Javac 编译原理
- 4.1 Javac 是什么
一种编译器,能将一种语言规范转化成另一种语言规范。任务是将java源码翻译成java字节码,也就是JVM能够识别的二进制码
- 4.2 Javac 编译器的基本结构
编译程序步骤:
1、读取源码,进行此词法分析
2、语法分析,找语法关键词(token流),形成抽象语法分析数
3、语义分析,形成能懂得白话文或作注解
4、字节码生成器生成字节码,即将一个数据结构转化为另外一个数据结构

- 4.3 javac 工作原理分析
词法分析器
词法分析器的分析结果就是将类中所有关键词匹配到Token类的所有项中的任何一项
语法分析器
语法分析器是将词法分析器产生的Token流组建成更加结构化的语法树
语义分析器
语义分析器是将语法树进行处理:类型变量处理、操作语句是否可达、检查异常等
代码生成器
遍历语法树,生成最终的Java字节码
- 4.4 设计模式解析之访问模式
访问者模式的结构
访问者模式角色
1、抽象访问者:申明所有访问者需要的接口
2、具体访问者:实现访问者申明的接口
3、抽象节点元素:提供一个接口,能够接受访问者作为参数传递给节点元素
4、具体节点元素:实现抽象节点元素声明的接口
5、抽象对象:提供一个接口,能够访问到所有的节点元素
6、客户端:分别创建访问者和节点元素的对象,调用访问者访问变量节点元素
Javac 中访问者模式的实现
访问者模式可以将数据结构和对数据结构的操作解耦,是的增加对数据结构的操作不需要去修改数据结构,也不必去修改原有的操作,而执行时再定义新的Visitor实现者就可以

浙公网安备 33010602011771号