LEMON语法分析生成器

出版时间:2006-7  出版社:浙江大学  作者:虞森林  页数:405  
Tag标签:无  

内容概要

通过解剖分析现成软件的源代码来学习计算机的专业课程,是一种行之有效的途径。本书通过解剖一个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章非常简要地介绍了语法分析器内函数调用与数组之间的关系、它们的良好封装性,以及如何删除调试排错功能以获得更小的软件体积。  本书可作为大学计算机专业高年级学生和研究生的教材或教学参考书,也可作为从事计算机系统研究或应用开发人员的参考书。

书籍目录

第1章 介绍LEMON 1.1 编译原理的由来和发展 1.2 LEMON简介 1.3 命令行中各个选项 1.4 语法分析器的界面和工作过程 1.5 与YACC和BISON的不同之处 1.6 语法文件的语法 1.7 特殊申明符 1.8 语法分析过程的错误恢复策略第2章 设计计算器 2.1 最简陋计算器 2.2 使用自定义的数据类型——结构 2.3 语法分析器的状态和动作 2.4 语法分析的动作记录 2.5 比较完善的计算器 2.6 如何释放符号占用的内存空间 2.7 具有变量功能的计算器 2.8 具有函数功能的计算器 2.9 添加带两个参数的函数功能以及让函数能够重载 2.10 计算器的全部源代码第3章 处理命令行输入 3.1 函数调用关系 3.2 内容概述 3.3 如何阅读分析LEMON源程序  3.4 与命令行有关变量、数组的申明和赋值  3.5 命令行选项错误输入时的处理 3.6 命令行带参数选项的处理  3.7 提示正确参数输入形式第4章 初始化LEMON  4.1 函数调用关系  4.2 内容概述  4.3 LEMON程序的“全局”变量  4.4 启用“符号之家”的strsafe—init函数  4.5 启用符号表的Symbol—init函数  4.6 符号(symb01)结构  4.7 启用状态表的State—init函数  4.8 状态(state)数据结构  4.9 项目(config)数据结构  4.10 产生式(rule)数据结构  4.11 动作(action)数据结构  4.12 一些变量的初始化  4.13 装配和安置符号  4.14 检测符号的安置第5章 词法扫描和语法要素内部表示  5.1 函数调用关系  5.2 内容概述  5-3 词法处理的主角  5.4 词法分析专用的数据结构(pstate)  5.5 读入整个语法文件  5.6 打印出错信息函数  5.7 处理条件编译  5.8 分析字符流和裁成记号流  5.9 记号的语法分析  5.10 文法符号计数、排序  5.11 重现语法文件第6章 符号的First集  6.1 函数调用关系  6.2 内容概述  6.3 计算优先级  6.4 找出符号的First集第7章 计算LR(0)分析器 7.1 函数调用关系  7.2  内容概述 ……第8章 符号的Follow集第9章 计算LALR(1)分析器第10章 生成LALR(1)语法分析器第11章 语法分析器的一些特性主要参考文献

图书封面

图书标签Tags

评论、评分、阅读与下载


    LEMON语法分析生成器 PDF格式下载


用户评论 (总计9条)

 
 

  •   情景分析系列,支持
  •   这本书对农民种地很有帮助,能提高农作物的产量,提高种植收割效率
  •   给朋友买的,他应该喜欢吧。
  •   帮同事买的, 书籍印刷还不错
  •   感谢作者很有心,这本书作为高校教材还是挺不错的,但是用于指导实践我认为还有不足。首先lemon解析器的定位,它是处于词法分析,语法分析还是语义分析的哪个阶段到现在还是不太清楚的,lemon缺乏可视化的UI进行处理,使用起来如果还要自己进行词法分析,那实用性就打折扣了。因为此书中对LALR1解析算法进行剖析,相比一些老外的图书,例如Monographs in ***puter Science,Packret分析(第二版)要差了很多。其次我实际上需要的是实践操作的指导,工作后难得有时间和有精力去深入学习算法,算法对于我是黑盒即可,我需要的是短平快的进行开发,快速实现我所需要的目标,lemon的能力显然有限,当然lemon是免费的,这点没有疑问。最后给大家推荐几款我前期研究中发现的软件,希望和大家多多交流:1)Parser Generator2)UltraGram上述两个软件的语法书写上和lemon是不同的,虽然我也没有深入的使用,但是发现在实用性方面似乎这两款软件更能满足我的要求。
  •   这本书对龙书在LALR方面有一个很好的补充作用,个人认为龙书一直以来对LALR的解释和实例是不够的,而这本书主要是一个通过分析一个LALR(1)文法作为核心的语法分析生成器来解释LALR技术和实现方法,是在实例方面对龙书的不足之处的一个很好的支持,而且内容写得不错,对于想了解自底向顶编译器技术以及语法生成器构造的人来讲,是不个不错的选择!
  •   一直对当当的感觉还是蛮好的,但是这本书让我很伤心,书侧整个都沾满了土,显然是沾过水的,其中一页还有个鞋印,很多书页的都折了,当当作为比较主流的图书网站,不应该这样对待我们广大学生吧,我们可是经常买书的啊!
  •   内容挺好,就是啰嗦了一点,能简洁一点就好了
  •   东西难懂,待初略学习编译原理后再慢慢啃,看上去是本有价值的书
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7