编译原理实践教程 / “十四五”高等学校新工科计算机类专业系列教材
定价:¥26.00
作者: 张敬敏,李霞,齐净垒
出版时间:2025-07
最新印次日期:2025-7
出版社:中国铁道出版社
试读
- 中国铁道出版社
- 9787113318345
- 1版
- 572108
- 16开
- 2025-07
- 工学
- 计算机类
- 计算机类
- 本科
作者简介
内容简介
本书按照编译原理的核心理论和编译器的开发实际而编写,主要介绍TPL语言、编译器设计与实现过程,通过实验步骤和指导过程引导读者完成一个实际可用的编译器,从而了解编译程序构造的一般原理和基本方法。为便于理解,还提供了不同类型的测试样例来验证编译器实现的正确性,包括词法分析、语法分析、语义分析和代码优化等实验内容,具有系统完整、测试指导明确、帮助验证和难度可调等特点。
本书适合作为普通高等学校计算机科学与技术、软件工程、数据科学与大数据技术、信息安全等相关专业的教材,也可供科技工作者及软件研发人员学习和参考。
本书适合作为普通高等学校计算机科学与技术、软件工程、数据科学与大数据技术、信息安全等相关专业的教材,也可供科技工作者及软件研发人员学习和参考。
目录
第1章TPL语言.1
1.1TPL语言设计原则.1
1.2字符集合2
1.3数据类型2
1.4TPL语言的符号.3
1.5表达式.3
1.6语句.4
1.6.1赋值语句4
1.6.2if条件语句.5
1.6.3while循环语句.5
1.6.4for循环语句.6
1.6.5复合语句.7
1.7程序结构.8
第2章TPL语言编译器设计.9
2.1基本工作流程.9
2.2词法分析程序设计.10
2.2.1词法分析任务10
2.2.2高级语言实现词法分析(实验一).10
2.2.3自动生成工具实现词法分析(实验二).15
2.3语法分析程序设计.15
2.3.1语法分析任务15
2.3.2高级语言实现语法分析(实验三).17
2.3.3自动生成工具实现语法分析(实验四).19
2.4语义分析和中间代码生成程序设计.19
2.4.1语义分析和中间代码生成任务.19
2.4.2高级语言实现语义分析和中间代码生成(实验五).20
2.5中间代码优化程序设计.21
2.5.1中间代码优化任务.21
2.5.2高级语言实现中间代码优化(实验六).21
第3章C++语言实现TPL语言编译器示例.25
3.1词法分析程序26
3.1.1设计思路.26
3.1.2设计原理.26
3.1.3存储结构.26
3.1.4函数说明.26
3.1.5主要算法.27
3.1.6测试用例.29
3.2语法分析程序32
3.2.1设计思路.32
3.2.2设计原理.32
3.2.3存储结构.35
3.2.4函数说明.35
3.2.5主要算法.36
3.2.6测试用例.38
3.3语义分析和中间代码优化程序.40
3.3.1设计思路.40
3.3.2设计原理.41
3.3.3存储结构.43
3.3.4函数说明.43
3.3.5主要算法.44
3.3.6测试用例.48
第4章自动生成工具的使用.55
4.1词法分析器自动生成工具的使用.55
4.1.1Lex概述.55
4.1.2Lex源文件结构56
4.1.3Lex源文件设计示例.59
4.2语法分析器自动生成工具的使用.61
4.2.1Yacc概述61
4.2.2Yacc源文件格式.62
4.2.3Flex&Bison联合编译示例.67
第5章自动生成工具实现TPL语言编译器示例.72
5.1词法分析器设计与实现.72
5.1.1设计思路.72
5.1.2词法分析器源文件.72
5.1.3测试用例.75
5.2语法分析器设计与实现.78
5.2.1设计思路.78
5.2.2语法规则设计79
5.2.3语法分析器源文件.81
5.2.4测试用例.91
5.3功能扩展.98
附录A高级语言实现编译器实验报告模板.99
附录B自动生成工具实现编译器实验报告模板101
附录C目标代码生成程序设计.102
参考文献.104
1.1TPL语言设计原则.1
1.2字符集合2
1.3数据类型2
1.4TPL语言的符号.3
1.5表达式.3
1.6语句.4
1.6.1赋值语句4
1.6.2if条件语句.5
1.6.3while循环语句.5
1.6.4for循环语句.6
1.6.5复合语句.7
1.7程序结构.8
第2章TPL语言编译器设计.9
2.1基本工作流程.9
2.2词法分析程序设计.10
2.2.1词法分析任务10
2.2.2高级语言实现词法分析(实验一).10
2.2.3自动生成工具实现词法分析(实验二).15
2.3语法分析程序设计.15
2.3.1语法分析任务15
2.3.2高级语言实现语法分析(实验三).17
2.3.3自动生成工具实现语法分析(实验四).19
2.4语义分析和中间代码生成程序设计.19
2.4.1语义分析和中间代码生成任务.19
2.4.2高级语言实现语义分析和中间代码生成(实验五).20
2.5中间代码优化程序设计.21
2.5.1中间代码优化任务.21
2.5.2高级语言实现中间代码优化(实验六).21
第3章C++语言实现TPL语言编译器示例.25
3.1词法分析程序26
3.1.1设计思路.26
3.1.2设计原理.26
3.1.3存储结构.26
3.1.4函数说明.26
3.1.5主要算法.27
3.1.6测试用例.29
3.2语法分析程序32
3.2.1设计思路.32
3.2.2设计原理.32
3.2.3存储结构.35
3.2.4函数说明.35
3.2.5主要算法.36
3.2.6测试用例.38
3.3语义分析和中间代码优化程序.40
3.3.1设计思路.40
3.3.2设计原理.41
3.3.3存储结构.43
3.3.4函数说明.43
3.3.5主要算法.44
3.3.6测试用例.48
第4章自动生成工具的使用.55
4.1词法分析器自动生成工具的使用.55
4.1.1Lex概述.55
4.1.2Lex源文件结构56
4.1.3Lex源文件设计示例.59
4.2语法分析器自动生成工具的使用.61
4.2.1Yacc概述61
4.2.2Yacc源文件格式.62
4.2.3Flex&Bison联合编译示例.67
第5章自动生成工具实现TPL语言编译器示例.72
5.1词法分析器设计与实现.72
5.1.1设计思路.72
5.1.2词法分析器源文件.72
5.1.3测试用例.75
5.2语法分析器设计与实现.78
5.2.1设计思路.78
5.2.2语法规则设计79
5.2.3语法分析器源文件.81
5.2.4测试用例.91
5.3功能扩展.98
附录A高级语言实现编译器实验报告模板.99
附录B自动生成工具实现编译器实验报告模板101
附录C目标代码生成程序设计.102
参考文献.104















