Lex 与 Yacc(第二版)
[绝版]基本信息
- 原书名: Lex & Yacc,Second Edition
- 原出版社: O'Reilly
- 作者: (美)John R.Levine,Tony Mason,Doug Brown [作译者介绍]
- 译者: 杨作梅 张旭东 等
- 丛书名: O'Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:7111107217
- 上架时间:2003-2-25
- 出版日期:2003 年1月
- 开本:16开
- 页码:375
- 版次:1-1
- 所属分类:
计算机 > 操作系统 > UNIX
编辑推荐
本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的MS-DOS和UNIX版本,本书都进行了介绍,包括AT&T lex和yacc、Berkeley yacc、Berkeley/Gnu flex、 Gun bison、MKS lex和yacc、Abraxas PCYACC等等。
内容简介回到顶部↑
《lex与yacc》(第二版)是惟一一本专门介绍这两个重要的unix编程工具的书。这本新版本是完全的修订版,并以很多新的扩充示例代替了旧的示例。几个介绍性章节已经完全重写,还有一章专门介绍实现sql语法,给出了有经验的程序员希望看到的各种细节。
本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的ms-dos和unix版本,本书都进行了介绍,包括at&t lex和yacc、berkeley yacc、berkeley/gnu flex、 gun bison、mks lex和yacc、abraxas pcyacc等等。
◆“太棒了!我已经读完《lex与yacc》的第二版……总而言之,这是一件伟大的作品——这本书比第一版充实很多,详实而透彻。阅读的过程中,我经历了无数次的惊喜,心里总想‘可惜了,他们已经错过了也许是细微而精妙的地方,我先做个注释’,然而随后在下一个句子或段落就看到对该问题的阐释。”
◆“[john levine]做了大量的工作来完善这本书。我很高兴最终有一本好书推荐给人们。”
——vern paxson,flex的开发者
[font color="#cc0000"]封面介绍:[/font]
封面上的动物特征是维多利亚王冠鸽——鸽子家族中最大的成员之一。与其他鸟类不同,有王冠的鸽子喝水时是把咏嘴浸入吸吮。蛋的孵化(一般有两个蛋)由一雌一雄共同分担,雄鸟白天孵化,雌鸟夜里孵化。维多利亚王冠鸽的羽毛明亮,深蓝色并带有紫色的斑纹,带有花边的扇状头冠,淡蓝色的羽毛。曼然它们在其产地新几内亚岛受法律保护,但是它们仍然成为一些觊觎其羽毛的偷猎者的目标,它们正处于濒临灭绝的危险之中。
本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的ms-dos和unix版本,本书都进行了介绍,包括at&t lex和yacc、berkeley yacc、berkeley/gnu flex、 gun bison、mks lex和yacc、abraxas pcyacc等等。
◆“太棒了!我已经读完《lex与yacc》的第二版……总而言之,这是一件伟大的作品——这本书比第一版充实很多,详实而透彻。阅读的过程中,我经历了无数次的惊喜,心里总想‘可惜了,他们已经错过了也许是细微而精妙的地方,我先做个注释’,然而随后在下一个句子或段落就看到对该问题的阐释。”
◆“[john levine]做了大量的工作来完善这本书。我很高兴最终有一本好书推荐给人们。”
——vern paxson,flex的开发者
[font color="#cc0000"]封面介绍:[/font]
封面上的动物特征是维多利亚王冠鸽——鸽子家族中最大的成员之一。与其他鸟类不同,有王冠的鸽子喝水时是把咏嘴浸入吸吮。蛋的孵化(一般有两个蛋)由一雌一雄共同分担,雄鸟白天孵化,雌鸟夜里孵化。维多利亚王冠鸽的羽毛明亮,深蓝色并带有紫色的斑纹,带有花边的扇状头冠,淡蓝色的羽毛。曼然它们在其产地新几内亚岛受法律保护,但是它们仍然成为一些觊觎其羽毛的偷猎者的目标,它们正处于濒临灭绝的危险之中。
作译者回到顶部↑
本书提供作译者介绍
John R.Levine编著、演讲和咨询过许多有关UNIX和编译程序的主题。他主持了Usenet上的在线comp.compliers.discussion组,从事Lotusl-2-3的UNIX版本以及Norton实用程序的设计工作,并且是IMB RT PC的AIX设计者之一。1984年他获得了耶鲁大学计算机科学博士学位。
Tony Mason目前是Transarc公司AFS开发组成员,创办投资的这个小公司专攻分布式系统软件。以前,他工作于斯坦福大学的分布式操作系统和数据通信领域的Distributed Systems Group。1987年他在芝加哥大学获得数学理学学士学位.. << 查看详细
Tony Mason目前是Transarc公司AFS开发组成员,创办投资的这个小公司专攻分布式系统软件。以前,他工作于斯坦福大学的分布式操作系统和数据通信领域的Distributed Systems Group。1987年他在芝加哥大学获得数学理学学士学位.. << 查看详细
目录回到顶部↑
第一章 lex和yacc
最简单的lex程序
用lex识别单词
语洁
运行lex和yacc
lex和手写的词法分析程序
练习
第二章 使用lex
正则表达式
单词计数程序
分析命令行
c源代码分析程序
小结
练习
第三章 使用yacc
最简单的lex程序
用lex识别单词
语洁
运行lex和yacc
lex和手写的词法分析程序
练习
第二章 使用lex
正则表达式
单词计数程序
分析命令行
c源代码分析程序
小结
练习
第三章 使用yacc
前言回到顶部↑
lex和yacc是特意为编写编译程序和解释程序的人设计的工具,它对非编译程序编写人员所感兴趣的许多应用程序也非常有用。在输入中查找模式或者拥有输入或命令语言的任何应用程序都适于采用lex和yacc。而且,它们允许快速应用程序原型设计,容易修改,而且程序的维护简单。为了激发读者的想像力,下面给出了几个用lex和yacc开发的应用:
台式计算器bc。
工具eqn和pic,用于数学公式和复杂图片的排版预处理器。
PCC和GCC,PCC是和许多UNIX系统一起使用的可移植C编译程序,GCC是GNU C编译程序。
菜单编译程序。
SQL数据库语言语法检查程序。
lex程序本身。
第二版的新特点
在第二版中,我们已经做了大量的修正。主要变化包括:
完全重写的介绍性的第一章到第三章。
全新的第五章介绍了完整的SQL语法。
全新的详细的参考性的第六章和第七章。
包含了lex和yacc的所有主要的MS-DOS和UNIX版本的完整介绍,包括AT&T lex和yacc、Berkeley yacc、flex、GNU bison、MKS lex和yacc、Abraxas PCYACC。
包含了lex和yacc的新的POSIX 1003.2标准版本的介绍。
本书范围
第一章"lex和 yacc"介绍了如何以及为什么使用lex和yacc来创建编译程序和解释程序,并且演示了一些小的lex和yacc应用程序。还介绍贯穿全书的基本术语。
第二章"使用lex"描述了如何使用lex。开发了几个lex应用程序,它们分别用于计算文件中单词的个数,分析程序命令开关和参数和计算C程序上的统计数据。
第二章"使用yacc"给出了使用lex和yacc开发功能完整的台式计算器的完整示例。
第四章"菜单生成语言"演示了如何使用lex和yacc开发菜单生成程序。
第五章"分析SQL"开发了针对完整的SQL关系数据库语言的分析程序。首先,我们将分析程序作为一个语法检查程序,然后将它扩展为内置于C程序中的SQL的简单预处理程序。
台式计算器bc。
工具eqn和pic,用于数学公式和复杂图片的排版预处理器。
PCC和GCC,PCC是和许多UNIX系统一起使用的可移植C编译程序,GCC是GNU C编译程序。
菜单编译程序。
SQL数据库语言语法检查程序。
lex程序本身。
第二版的新特点
在第二版中,我们已经做了大量的修正。主要变化包括:
完全重写的介绍性的第一章到第三章。
全新的第五章介绍了完整的SQL语法。
全新的详细的参考性的第六章和第七章。
包含了lex和yacc的所有主要的MS-DOS和UNIX版本的完整介绍,包括AT&T lex和yacc、Berkeley yacc、flex、GNU bison、MKS lex和yacc、Abraxas PCYACC。
包含了lex和yacc的新的POSIX 1003.2标准版本的介绍。
本书范围
第一章"lex和 yacc"介绍了如何以及为什么使用lex和yacc来创建编译程序和解释程序,并且演示了一些小的lex和yacc应用程序。还介绍贯穿全书的基本术语。
第二章"使用lex"描述了如何使用lex。开发了几个lex应用程序,它们分别用于计算文件中单词的个数,分析程序命令开关和参数和计算C程序上的统计数据。
第二章"使用yacc"给出了使用lex和yacc开发功能完整的台式计算器的完整示例。
第四章"菜单生成语言"演示了如何使用lex和yacc开发菜单生成程序。
第五章"分析SQL"开发了针对完整的SQL关系数据库语言的分析程序。首先,我们将分析程序作为一个语法检查程序,然后将它扩展为内置于C程序中的SQL的简单预处理程序。
评论交流
共有79人开贴评论 138人参与评论 73人参与打分 查看
评价等级:





发表于:2005-1-26 23:03:00
好象这是唯一一本专门介绍Lex/Yacc的书吧,其实都是在编译器中的部分章节讲一下。
手中有一本,由于工作比较忙只看了一小部分,也不好下什么具体的评价。发这个帖子是想提醒大家里面的例子有错误的,ch2-09.l就不对,有兴趣的可以试一试:
/* comments */ int i = 0; /* comments */
就被它统计为注释行了。仔细分析你会发现这一例子问题非常多,不要说是书中印刷错误,网站上给出的也是这样,只是把%x改为了%s而已。不知道作者当初是怎么测试的。
其实想写一个完善的代码统计工具的规则挺难的,如字符串中的/*和*/就是一种特殊情况,这里的分析肯定会出错的;而如果分析C++,由于它支持Multi character(不知道的自己去看标准)如'abcd'、'*/'、'//'可以是整数,会使情况更加复杂。
手中有一本,由于工作比较忙只看了一小部分,也不好下什么具体的评价。发这个帖子是想提醒大家里面的例子有错误的,ch2-09.l就不对,有兴趣的可以试一试:
/* comments */ int i = 0; /* comments */
就被它统计为注释行了。仔细分析你会发现这一例子问题非常多,不要说是书中印刷错误,网站上给出的也是这样,只是把%x改为了%s而已。不知道作者当初是怎么测试的。
其实想写一个完善的代码统计工具的规则挺难的,如字符串中的/*和*/就是一种特殊情况,这里的分析肯定会出错的;而如果分析C++,由于它支持Multi character(不知道的自己去看标准)如'abcd'、'*/'、'//'可以是整数,会使情况更加复杂。
| 我要写评论 |
| 查看所有评论交流(共79条) |


点击看大图




加载中...

