





定价:46元
印次:1-8
ISBN:9787302456995
出版日期:2017.03.01
印刷日期:2025.01.09
图书责编:袁勤勇
图书分类:教材
本书结合对现代编译器设计理论的详细研究,精心设计了若干个实验,每个实验都使用C语言编写完成,并配有大量的练习,使读者可以将注意力集中到编程上,真正做到“以源代码为核心”。读者可以亲自动手完成这些实验,在实践的过程中循序渐进地学习编译原理的理论知识,进而加深对编译原理的理解,掌握理论知识在实际中的应用情况,从而将理论知识统一起来。本书还完整描述了一个可运行的小规模语言编译器(包括源代码)。 全书包含12个实验,是一本真正能够引导读者动手实践的书。本书可作为高等院校“编译原理”课程的实践教材,也可作为各类程序开发者、爱好者的阅读参考书。
本书结合对现代编译器设计理论的详细研究,精心设计了若干个实验,每个实验都使用C语言编写完成,并配有大量的练习,使读者可以将注意力集中到编程上,真正做到“以源代码为核心”。读者可以亲自动手完成这些实验,在实践的过程中循序渐进地学习编译原理的理论知识,进而加深对编译原理的理解,掌握理论知识在实际中的应用情况,从而将理论知识统一起来。完整描述了一个可运行的小规模语言编译器(包括源代码),读者可以分析一个可以实际工作的编译器的实现方法。包含12个实验,覆盖编译原理知识领域中所有重要的模块和知识点。实验按照“由易到难,循序渐进”的原则进行设计,先验证型,后设计型和综合型。在单个实验内容的安排上,一般会首先带领读者阅读并调试相关模块的源代码,并结合相应的编译原理进行分析;然后安排读者对已有代码进行适当的改写,或者编写新的代码;最后还会提供一些思考与练习的题目,感兴趣的读者可以完成这些题目,从而进一步提高动手实践能力和创新能力。因此,本书是一本真正能够引导读者动手实践的书。本书适合作为高等院校编译原理课程的实践教材,也适合各类程序开发者、爱好者阅读。
纸上得来终觉浅,绝知此事要躬行。 ——陆游 本书特点 众所周知,编译原理是计算机知识领域中一个核心的组成部分,也是高校计算机科学专业学生的重要基础课。同时,编译原理也是一门实践性很强的课程。本书通过引导读者动手进行相应的实验,进而达到使读者深刻理解编译原理的目的。 本书非常适合于编译原理的初学者使用,能够帮助初学者进行高质量的编译系统实验。本书精心设计了若干个实验题目,使读者可以逐步地接触到一个实际编译系统的源代码。本书还配置了一个集成度很高的实验环境——CP Lab,在这个集成实验环境中,读者可以非常轻松地编辑、编译和调试源代码,从而读者可以将有限的精力放在学习编译原理上,而不是如何构建实验环境,或者使用各种工具上。本书会一步一步地带动读者通过动手实践的方式来分析和编写可以实际工作的源代码,进而理解编译原理。 现代编译系统已经变得越来越复杂,虽然本书中的编译系统是专为教学而设计,相对于一些商用编译系统已经非常简化,但是相信本书的很多读者都是第一次接触到这样规模的源代码。本书在编写时充分考虑到了这个问题,并做了一些有益的尝试。为了方便读者理解,编译系统的源代码进行了很多简化,各个模块间的耦合性被设计得尽量小,这样读者在学习某个模块时就更容易集中精力。在本书的各个实验之间也会存在一些交叉的或者重复的内容,有时还会提示读者回到之前的实验学习相关的内容,这种“螺旋式”的学习方法可以帮助读者从整体上理解编译原理。 本书另外一个着重点就是要让读者真正动手实践。只有通过亲身实践学习到的知识才能够真正被掌握,而那些仅仅从书本上得到的知识更容易被忘记。本书为了让...
CP Lab简介1
实验1实验环境的使用3
实验2NFA到DFA26
实验3使用Lex自动生成扫描程序48
实验4消除左递归(无替换)62
实验5消除左递归(有替换)74
实验6提取左因子89
实验7First集合104
实验8Follow集合117
实验9Yacc分析程序生成器132
实验10符号表的构建和使用137
实验11三地址码转换为P\|代码146
实验12GCC编译器案例综合研究156
附录ATINY编译器和TM机167
参考文献225第1章数据结构课程设计概述1
1.1数据结构简介1
1.2课程设计目标和特点2
1.3编写说明3
1.4课程设计实例的标准格式4
第2章线性表的应用6
2.1存储结构与基本运算的算法6
2.2集合的交、并运算15
2.3学生成绩管理18
2.4多项式求导25
2.5约瑟夫环问题30
2.6数据库管理系统34
第3章栈的应用58
3.1存储结构与基本运算的算法58
3.2括号匹配63
3.3汉诺塔问题66
3.4算术表达式求值69
3.5马踏棋盘76
第4章队列的应用82
4.1存储结构与基本运算的算法82
4.2看病排队候诊问题88
4.3数制的转换91
4.4停车场管理99
4.5基数排序107
第5章串的应用114
5.1存储结构与基本运算的算法114
5.2KMP算法118
5.3最长公共子串121
5.4大整数计算器123
编译原理实验教程目录第6章多维数组和广义表的应用130
6.1存储结构与基本运算的算法130
6.2魔方... 查看详情
读者可以亲自动手完成这些实验,在实践的过程中循序渐进地学习编译原理的理论知识,进而加深对编译原理的理解,掌握理论知识在实际中的应用情况,从而将理论知识统一起来。
完整描述了一个可运行的小规模语言编译器(包括源代码),读者可以分析一个可以实际工作的编译器的实现方法。
包含12个实验,覆盖编译原理知识领域中所有重要的模块和知识点。实验按照“由易到难,循序渐进”的原则进行设计,先验证型,后设计型和综合型。在单个实验内容的安排上,一般会首先带领读者阅读并调试相关模块的源代码,并结合相应的编译原理进行分析;然后安排读者对已有代码进行适当的改写,或者编写新的代码;最后还会提供一些思考与练习的题目,感兴趣的读者可以完成这些题目,从而进一步提高动手实践能力和创新能力。因此,本书是一本真正能够引导读者动手实践的书。
本书适合作为高等院校编译原理课程的实践教材,也适合各类程序开发者、爱好者阅读。 查看详情