展开全部

主编推荐语

献给Java无尽追求者,Java大神级程序员修炼之道。

内容简介

Java是一门流行多年的高级编程语言,相关的就业岗位很多,但是最近几年却出现了用人单位招不到人,大量研发人员找不到工作的尴尬局面。根本原因还是岗位对技术的要求高,不但要会应用,更要懂其内部的运行原理。

对于想要深入研究Java的从业者来说,目前国内市场上还没有一本剖析Java编译器(Javac)源码的书籍,也没有一本剖析工业级编译器源码的书籍,这正是本书要填补的市场空白。

本书围绕市面上的主流编译器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 类型常见操作
  • C.1 supertype()方法
  • C.2 interfaces()方法
  • C.3 asSuper()方法
  • C.4 asOuterSuper()方法
  • C.5 isSameType()方法
  • C.6 L()与U()方法
  • C.7 lowerBound()与upperBound()方法
  • C.8 containsType()方法
  • C.9 hasSameArgs()方法
  • C.10 subst()方法
  • C.11 memberType()方法
  • C.12 erasure()与erasureRecursive()方法
  • 附录D 符号常见操作
  • D.1 isInheritedIn()方法
  • D.2 hiddenIn()方法
  • D.3 isMemberOf()方法
  • D.4 overrides()方法
  • D.5 implementation()方法
  • 附录E 虚拟机字节码指令表
  • E.1 加载与存储指令
  • E.2 运算指令
  • E.3 类型转换指令
  • E.4 对象操作指令
  • E.5 操作数栈管理指令
  • E.6 控制转移指令
  • E.7 方法调用和返回指令
  • E.8 异常抛出指令
  • E.9 同步指令
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    2.0
    最想了解的 jit 没有提

    老生常谈的问题,最想了解的 JIT 没有提。

      转发
      1

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。