
小型编译器设计实践
着力于叙述编译器具体的设计和编程细节
¥69.86
作品简介
本书主要着力于叙述编译器具体的设计和编程细节,并不侧重探究编译器的设计理论。本书以目前较为流行的两款微处理器(MCU)为例,设计、开发相应的C语言编译器工具包:(1)加强型PIC16Fxxxx系列MCU、8位微处理器、RISC系统结构、小端式体系(little-endian)。(2)STM8系列MCU、8位微处理器、CISC系统结构、大端式体系(big-endian)。本书以实际目标处理器为对象,介绍和展现编译器设计的全部详细过程。
苏孟晋,出生于上海,祖籍江苏常州。1978年考入浙江大学计算机专业就读,1982年获学士学位。同年开始在上海同济大学计算机专业供职,1987年获讲师职称。1990年赴美留学,于1992年获硕士学位。
作品目录
内容简介
前言
第一篇 PIC16Fxxxx编译器(cc16e.exe)的设计
第1章 工具准备和系统设置
1.1 GNU C/C++编译工具的选择
1.2 解析工具构造器
1.3 工具的安装
1.4 目标编译器运行前的系统设置
第2章 预处理器的设计
2.1 预处理器(C/C++版)
2.2 源程序预处理器(flex版)
2.3 本章小结
第3章 编译器设计初步实践
3.1 设计简介
3.2 一个简单的C语言关键字识别器
3.3 编译器雏形(flex和bison的使用)
3.4 语法解析和词法解析之间的数值传递
3.5 编译树的构建
3.6 源程序语句代码的截取和嵌入
3.7 编译树的显示
第4章 编译器设计实战
4.1 对C语言的词法解析
4.2 对C语言的语法解析
4.3 支持预处理等语句的语法解析
4.4 支持结构化数据的语法解析
4.5 支持对typedef的语法解析
4.6 本章小结
第5章 编译树的预扫描
5.1 符号表的基本数据结构和应用
5.2 符号的链表操作
5.3 对编译树的预扫描
5.4 本章小结
第6章 P-代码与虚拟机
6.1 基本数据结构
6.2 变量表和函数表
6.3 P-代码生成基础
6.4 P-代码生成过程
6.5 本章小结
第7章 P-代码的优化
7.1 清除冗余的代码
7.2 代码的合并简化
7.3 条件跳转操作的优化
7.4 关于特殊常数操作运算的优化
7.5 关于临时变量使用的优化
7.6 其他种类的优化
7.7 本章小结
第8章 汇编语言输出
8.1 PIC16Fxxxx处理器简介
8.2 编译器的汇编语言输出
8.3 运行代码的汇编语言输出
8.4 非运行代码的汇编语言输出
第9章 PIC16Fxxxx编译器最后的完善
9.1 为编译器增加编译运行的编译选项
9.2 编译器库函数的设计
9.3 支持超强型PIC16Fxxxx处理器的思考和对策
第二篇 PIC16Fxxxx汇编器(as16e.exe)的设计
第10章 PIC16Fxxxx汇编器的词法解析器
10.1 数据结构的设计
10.2 汇编器的词法解析设计
10.3 汇编器的语法解析设计
10.4 汇编器对输入文件的扫描
10.5 汇编器的代码转换输出
10.6 汇编器的最后完善
第三篇 PIC16Fxxxx连接器(lk16e.exe)的设计
第11章 PIC16Fxxxx连接器基本设计
11.1.obj文件的读入和语法扫描
11.2 分段类型及其数据结构
11.3 连接器起始和运行模式
11.4 内存类型和模式的建立
11.5 符号数据结构
11.6 连接操作
第12章 PIC16Fxxxx连接器的加强与深入
12.1 问题的提出和应对
12.2 函数活跃状态的判断原则
12.3 函数内部变量空间共享的实现和设计
12.4 本章小结
第13章 PIC16Fxxxx编译器设计的总结和应用实例
13.1 应用实例1:基于si47xx模块的收音机
13.2 应用实例2:USB/UART转接器