新書推薦:
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:NT$
398.0
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:NT$
301.0
《
周易
》
售價:NT$
203.0
《
东南亚的传统与发展
》
售價:NT$
306.0
《
乾隆制造
》
售價:NT$
398.0
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:NT$
1316.0
《
明代社会变迁时期生活质量研究
》
售價:NT$
1367.0
《
律令国家与隋唐文明
》
售價:NT$
332.0
|
內容簡介: |
本书主要着力于叙述编译器具体的设计和编程细节,并不侧重探究编译器的设计理论。本书以目前较为流行的两款微处理器(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章 工具准备和系统设置............................................................................................2 1.1 GNU C/C++编译工具的选择..................................................................................2 1.1.1 MinGW ........................................................................................................ 2 1.1.2 DJGPP .......................................................................................................... 2 1.1.3 Cygwin ......................................................................................................... 2 1.2 解析工具构造器 ...................................................................................................... 3 1.3 工具的安装 .............................................................................................................. 3 1.4 目标编译器运行前的系统设置 .............................................................................. 4 第2章 预处理器的设计...................................................................................................5 2.1 预处理器(C/C++版) ........................................................................................... 6 2.1.1 项目文件及其设置......................................................................................6 2.1.2 任务和算法.................................................................................................. 7 2.2 源程序预处理器(flex 版) ................................................................................. 11 2.2.1 正规表达式简介........................................................................................12 2.2.2 预处理器设计实战....................................................................................14 2.3 本章小结 ................................................................................................................ 20 第3章 编译器设计初步实践..........................................................................................21 3.1 设计简介 ................................................................................................................ 21 3.2 一个简单的 C 语言关键字识别器........................................................................22 3.2.1 工程项目文件............................................................................................22 3.2.2 项目运行主程序........................................................................................23 小型编译器设计实践 3.2.3 词法解析自动机部分................................................................................23 3.2.4 词法解析 C 语言部分 ............................................................................... 24 3.3 编译器雏形(flex 和 bison 的使用) .................................................................. 25 3.3.1 问题的提出和任务....................................................................................25 3.3.2 工程文件 makefile.....................................................................................26 3.3.3 词法解析规则部分....................................................................................26 3.3.4 词法解析的启动........................................................................................27 3.3.5 语法解析器文本及其基本格式 ................................................................ 27 3.3.6 语法解析器文本各区域的内容 ................................................................ 28 3.4 语法解析和词法解析之间的数值传递 ................................................................ 30 3.4.1 语法解析器文本的定义部分 .................................................................... 31 3.4.2 语法解析器识别规则部分 ........................................................................ 32 3.4.3 词法解析器解析规则部分 ........................................................................ 33 3.5 编译树的构建 ........................................................................................................ 34 3.5.1 编译树中的数据类型和结构 .................................................................... 34 3.5.2 节点生成和处理函数................................................................................35 3.5.3 语法解析器文本的定义部分 .................................................................... 36 3.5.4 语法解析器文本的语法解析识别规则部分 ............................................ 36 3.6 源程序语句代码的截取和嵌入 ............................................................................ 38 3.6.1 缓冲区与相关函数....................................................................................38 3.6.2 截取源程序代码并送入缓冲区中 ............................................................ 38 3.6.3 读取源代码缓冲内容................................................................................39 3.6.4 增加新定义并扩充 node 数据结构 .......................................................... 39 3.6.5 支持函数和程序........................................................................................40 3.6.6 在源程序片段中嵌入节点 ........................................................................ 41 3.7 编译树的显示 ........................................................................................................ 41 3.7.1 用于显示编译树的函数 ............................................................................ 42 3.7.2 编译树的显示操作....................................................................................42 第4章 编译器设计实战.................................................................................................44 4.1 对 C 语言的词法解析............................................................................................44 VIII 4.1.1 词法解析宏定义部分................................................................................44 4.1.2 各种常数解析识别....................................................................................45 4.1.3 C 语言关键字和标识符解析 .................................................................... 46 4.1.4 C 语言各种操作运算符识别 .................................................................... 46 4.1.5 关于字符和字符串常数的处理 ................................................................ 47 4.2 对 C 语言的语法解析............................................................................................ 47 4.2.1 描述特征的 attrib 完整结构 ..................................................................... 48 4.2.2 各类 node 数据结构的完善 ...................................................................... 48 4.2.3 语法解析定义部分的完善 ........................................................................ 49 4.2.4 函数声明/定义的完善............................................................................... 51 4.2.5 运算语法和运算符优先确定 .................................................................... 52 4.2.6 变量定义语法规则的完善 ........................................................................ 53 4.3 支持预处理等语句的语法解析 ............................................................................ 56 4.3.1 用于预处理语句的新增变量 .................................................................... 56 4.3.2 用于预处理语句的新增解析状态 ............................................................ 57 4.3.3 用于预处理语句的解析 ............................................................................ 57 4.3.4 用于预处理语句的节点和数据类型 ........................................................ 58 4.4 支持结构化数据的语法解析 ................................................................................ 61 4.5 支持对 typedef 的语法解析 ...........................
|
|