第四章 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实现者就可以

posted @ 2016-03-07 01:06  水底的土豆  阅读(223)  评论(1)    收藏  举报