通过解剖分析现成软件的源代码来学习计算机的专业课程,是一种行之有效的途径。本书通过解剖一个LALR(1)语法分析的生成器——LEMON,来达到学习编译原理中有关LALR(1)语法分析的目的。
本书的结构安排,以LEMON在mmn()主函数中执行流为串联主线,在分析过程中,按遇见的顺序,逐个分析阐述每个函数的工作机制、相关的数据结构,以及它们互相之间发生的有机联系。全书分11章。第1章对LEMON进行概略性的介绍。第2章通过一个带有变量功能、具有可重载函数的桌面计算器的开发实例,介绍如何应用LEMON来开发应用程序。第3章分析LEMON如何对命令行中输入的参数进行处理。第4章阐述LEMON中的各种数据结构以及它们的初始化过程。第5章为LEMON对语法文件内容进行词法扫描,并介绍如何将磁盘上的语法文件转换为机器内存里的各种数据结构。第6章讲述寻得符号Firsr集并建立优先级的过程。第7章讨论形成LR(0)分析器的各个状态和建立各项目的传播链表。第8章为寻找各语法符号的Follow集元素。第9章阐述在已有LR(0)分析器的基础上,添加先行符从而建立LALR(1)分析器的机理和过程。第10章是本书最重要的部分,讨论了LEMON如何与精心设计的lempar.c模板文件互相配合,最终生成LALR(1)类型语法分析器的C语言版文件。第11章非常简要地介绍了语法分析器内函数调用与数组之间的关系、它们的良好封装性,以及如何删除调试排错功能以获得更小的软件体积。
本书可作为大学计算机专业高年级学生和研究生的教材或教学参考书,也可作为从事计算机系统研究或应用开发人员的参考书。
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这
《小狐狸勇闯《山海经》·四海八荒(平装)》内容简介:小狐狸是一个地图迷,无意在爷爷书房里发现一张“山海经”地图,他拿起放大
Linux系统管理技术手册-(第二版)(英文版) 本书特色 自从2001年《Linux系统管理技术手册》一书问世以来,对于每一位必须有效解决各类技术问题,努力让...
《DSP原理及应用》以TI公司的TMS320C54x系列芯片为描述对象,以应用系统设计为主线,系统地介绍了DSP芯片的基本结构、开发和应用
《西方哲学史·第五卷:启蒙时代的法国哲学(学术版)》内容简介:本书是叶秀山、王树人总主编的《西方哲学史》(学术版)之分卷。
《当代生命科学中的政治纠缠》内容简介:本书以2005年韩国黄禹锡干细胞事件为主轴,辅以历史与当下生命科学技术案例,展开比较研究
Thegapbetweenwhodesignersanddevelopersimaginetheirusersare,andwhothoseusersreall...
本书是清朝康熙皇帝在万几之暇所作的一本笔记,内容主要是对天文、地理、古生物、动物、植物、医药、哲学等科学文化现象的调查、
《高情商沟通力》内容简介:人是感性的动物,只会偶尔的理性,人与人沟通不是为了找一个答案,而是想要多一份理解和认同。本书的独
《C语言学习指南:从规范编程到专业级开发》内容简介:本书分为五部分,通过大量简明易懂的范例由浅入深地演示C语言中的概念和编程
《生命为什么可以延续》内容简介:从一颗种子的简单崛起,到幼雏的破壳而出;从稚嫩小树的抽枝发芽,到新生儿的孕育和诞生……生命
《社群营销与运营实战手册》内容简介:社群经济的崛起极大地改变了现有的商业模式,“网红”、社交电商、新零售等新兴模式使社群的
“赢在京东”系列电商教程是京东官方认证用书,由一线业务精英和权威专家团队出品的电商读物,将不断分享京东发展过程中的优势资
《发明改变生活》内容简介:在璀璨的人类文明中,各式各样的发明层出不穷,为我们的生活带来了日新月异的变化。那发明是如何改变生
《围棋围地二选一从入门到精通(级位篇)》内容简介:本书是由少儿围棋教育专家、职业五段棋手赵守洵专为围棋初学者创作。本书按照
《LabVIEW大学实用教程(第3版)》主要内容:LabVIEW是一种图形化编程语言,广泛用于仿真、数据采集、仪器控制、测量分析和数据显示
《学习脑:像训练肌肉一样训练大脑》内容简介:你知道吗:做总结、做标记、图形记忆、重复阅读—这些我们从小就在使用的学习方法都
我们为什么不谈北欧设计,仅谈丹麦设计?因为从历史上看,不但北欧四国属于以丹麦为中心的北欧大帝国,就连整个英格兰,苏格兰的
《读故事学编程:Python王国历险记》内容简介:这是一本故事书,也是一本编程书。小男孩派森无意中闯入神秘国度—Python王国,恰好
广告是一种商业活动,也是一门艺术,具有其他学科无法替代的独特性。在当今物质化、信息化并重的时代,如何形成一套更为有效的训