深入解析Java编译器:源码剖析与实例详解

深入解析Java编译器:源码剖析与实例详解

作者:马智

出版社:机械工业

出版年:2020年1月

ISBN:9787111643388

所属分类:儿童文学

书刊介绍

《深入解析Java编译器:源码剖析与实例详解》内容简介

本书针对Java语言的编译器源码进行深度剖析,所以本书面向的读者主要是那些想深入研究Java语言运行原理的人。另外本书还可以用作编译原理的学习,通过强实践来达到学习的目的,所以对于想学习编译原理的人,如软件专业的学生,也是一个很好的选择。
本书共18章,5个附录,涵盖-Javac文件系统、词法分析、语法分析、符号表、语义分析、泛型、数据流、语法糖、字节码、Class文件等大量内容。由于Java编译器有10万行以上的代码,并且逻辑周密,细节众多。为了能够让读者更好的理解其中的要点,本书将会有大量的配图和实例,并且要对重点源代码展开细致的讲解。
马智,毕业于天津工业大学。在校期间所修专业为软件工程。毕业后一直从事软件开发相关工作。先后在掌游天下、京东集团任软件研发工程师。对编程语言的底层实现有浓厚的兴趣,尤其对编译原理有较为全面和深入的研究。深入研究过openJDK的源代码实现,其中包括Javac编译器的源代码实现。

作品目录

前言
第1章:Javac介绍
1.1、初识Javac
1.2、Javac源码与调试
1.3、Javac命令
第2章:Javac文件系统
2.1、文件相关实现类
2.2、文件的管理
第3章:词法分析
3.1、字符编码
3.2、获取字符输入流
3.3、Token与Name
3.4、生成Token流
第4章:语法分析之认识树节点
4.1、定义及声明
4.2、语句
4.3、表达式
4.4、生成树节点
第5章:语法分析之建立抽象语法树
5.1、定义及声明的抽象语法树
5.2、语句的抽象语法树
5.3、表达式的抽象语法树
5.4、遍历抽象语法树
第6章:符号表的组织
6.1、符号的定义
6.2、符号表的组织
6.3、类型的定义
第7章:填充符号表
7.1、依赖的处理
7.2、符号输入的第一阶段
7.3、符号输入第二阶段
第8章:插入式注解的实现
8.1、注解处理器基础
8.2、初始化注解处理器
8.3、运行注解处理器
第9章:语义分析之类型转换
9.1、类型转换的种类
9.2、赋值转换
9.3、方法调用转换
9.4、强制类型转换
9.5、数字提升
第10章:语义分析之语法检查
10.1、类型定义的检查
10.2、变量定义的检查
10.3、方法定义的检查
第11章:语义分析之引用消解
11.1、Resolve类介绍
11.2、类型引用的消解
11.3、变量引用的消解
11.4、方法引用的消解
第12章:语义分析之语法树标注
12.1、Attr类介绍
12.2、表达式相关树节点的标注
12.3、JCIdent树节点的标注
12.4、JCFieldAccess树节点的标注
第13章:泛型的实现
13.1、泛型类型
13.2、泛型方法
13.3、泛型擦除
第14章:数据流检查
14.1、Flow类介绍
14.2、if语句的分析
14.3、循环语句的分析
14.4、try语句与throw语句的分析
第15章:语法糖去除
15.1、简单语法糖
15.2、语句语法糖
15.3、枚举类语法糖
15.4、内部类语法糖
第16章:字节码指令生成
16.1、字节码指令集
16.2、生成字节码指令
16.3、Gen类介绍
16.4、可寻址实体Item
第17章:重要结构的字节码指令生成
17.1、控制转移指令与地址回填
17.2、语句的条件判断表达式
17.3、if语句
17.4、循环语句
17.5、switch语句
17.6、异常与finally语句
第18章:生成Class文件
18.1、Class文件的结构
18.2、魔数与版本
18.3、常量池
18.4、类定义的基本信息
18.5、字段集合
18.6、方法集合
18.7、类属性集合
18.8、描述符和签名
附录A
Javac命令
附录B
文法
附录C
类型常见操作
附录D
符号常见操作
附录E
虚拟机字节码指令表

相关推荐

微信二维码