作品简介

本书主要着力于叙述编译器具体的设计和编程细节,并不侧重探究编译器的设计理论。本书以目前较为流行的两款微处理器(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转接器
展开全部