lex与yacc

lex与yacc pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:[美] John R.Levine
出品人:
页数:375
译者:杨作梅
出版时间:2003-1
价格:45.00元
装帧:
isbn号码:9787111107217
丛书系列:
图书标签:
  • 编译原理
  • yacc
  • lex
  • 词法分析
  • 计算机
  • 语法分析
  • 编程
  • Compiler
  • 词法分析
  • 语法分析
  • 编译原理
  • Lex
  • Yacc
  • 编译器
  • 程序设计语言
  • 计算机科学
  • 扫描器
  • 解析器
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《lex与yacc》(第二版)是惟一一本专门介绍这两个重要的UNIX编程工具的书。这本新版本是完全的修订版,并以很多新的扩充示例代替了旧的示例。几个介绍性章节已经完全重写,还有一章专门介绍实现SQL语法,给出了有经验的程序员希望看到的各种细节。

本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的MS-DOS和UNIX版本,本书都进行了介绍,包括AT&T lex和yacc、Berkeley yacc、Berkeley/Gnu flex、Gnu bison、MKS lex和yacc、Abraxas PCYACC等等。

“太棒了!我已经读完《lex与yacc》的第二版……总而言之,这是一件伟大的作品 —— 这本书比第一版充实很多,详实而透彻。阅读的过程中,我经历了无数次的惊喜,心里总想‘可惜了,他们已经错过了也许是细微而精妙的地方,我先做个注释’,然而随后在下一个句子或段落就看到对该问题的阐释。”

“[John Levine]做了大量的工作来完善这本书。我很高兴最终有一本好书推荐给人们。”

——Vern Paxson,flex的开发者

作者简介

John R. Levine

John R. Levine编著、演讲和咨询过许多有关UNIX和编译程序的主题。他主持了Usenet上的在线comp.compilers.discussion组,从事Lotus 1-2-3的UNIX版本以及Norton实用程序的设计工作,并且是IMB RT PC的AIX设计者之一。1984年他获得了耶鲁大学计算机科学博士学位。

Tony Mason

Tony Mason目前是Transarc 公司AFS开发组成员,创办投资的这个小公司专攻分布式系统软件。以前,他工作于斯坦福大学的分布式操作系统和数据通信领域的Distributed Systems Group。1987年他在芝加哥大学获得数学理学学士学位。

Doug Brown

Doug Brown是俄勒冈州的一位咨询人员。他自1977年开始从事电路仿真、合成和测试工作。他是O'Reilly & Associates, Inc.出版的《lex & yacc》一书的作者之一。他1976年毕业于Illinois大学Urbana-Champaign分校,获得了电气工程硕士学位。

Doug Brown是Beaverton、Oregon的顾问和承包商。自1977年以来他一直在开发电路模拟、合成和测试的软件。Doug与人合著了《C++:The Core Language》—— 它是O'Reilly & Associates公司出版的另一本技术手册。1976年他在伊利诺斯州大学厄巴纳-尚佩恩分校获得电气工程理学硕士学位。

目录信息

前言
第一章 lex和yacc
最简单的lex程序
用lex识别单词
语法
运行lex和yacc
lex和手写的词法分析程序
练习
第二章 使用lex
正则表达式
单词计数程序
分析命令行
C源代码分析程序
小结
练习
第三章 使用yacc
语法
移进/归约分析
yacc语法分析程序
词法分析程序
算术表达式和歧义性
变量和有类型的标记
符号表
函数和保留字
用make构建语法分析程序
小结
练习
第四章 菜单生成语言
MGL的概述
开发MGL
构建MGL
屏幕处理
结束
MGL代码示例
练习
第五章 分析SQL
SQL的要点概述
语法检查程序
语法分析程序
嵌入式SQL
练习
第六章 lex规范参考
lex规范的结构
BEGIN
程序错误
字符变换
上下文相关
定义(替换)
ECHO
包含操作(文件的逻辑嵌套)
从字符串中输入
input()
内部表(%N声明)
lex库
行号和yylineno
文字块
一个程序中的多个词法分析程序
output()
lex 词法分析程序的可移植性
正则表达式语法
REJECT
从yylex()中返回值
起始状态
unput()
yyinput()、yyoutput()、yyunput()
yyleng
yyless()
yylex()
yymore()
yytext
yywrap()
第七章 yacc语法参考
yacc语法的结构
动作
歧义和冲突
yacc中的程序错误
结束标记
错误标记和错误恢复
%ident 声明
继承的属性($0)
词汇的反馈
文字块
文字标记
yacc语法分析程序的可移植性
优先级、结合性和操作符声明
递归规则
规则
特殊字符
开始声明
符号值
标记
%type声明
%union声明
变体和多重语法
y.output文件
yacc库
YYABORT
YYACCEPT
YYBACKUP
yyclearin
yydebug和YYDEBUG
yyerrok
YYERROR
yyerror()
yyparse()
YYRECOVERING()
第八章 yacc歧义和冲突
指针模型和冲突
冲突的普通示例
如何修复冲突
小结
练习
第九章 错误报告和恢复
错误报告
错误恢复
练习
附录一 AT&T lex
附录二 AT&T yacc
附录三 Berkeley yacc
附录四 GNU bison
附录五 flex
附录六 MKS lex和yacc
附录七 Abraxas lex和yacc
附录八 POSIX lex和yacc
附录九 MGL编译程序代码
附录十 SQL分析程序代码
参考文献
词汇表
· · · · · · (收起)

读后感

评分

评分

本来的打算是看完这本书之后,再写一篇简明教程的。但是一来没有看完,二来觉得实在是没有什么好写的。因为如果不动手做的话,光看只能是了解个大概。 最早对这两个工具产生兴趣是在自动机的课上,作为一个例子,被粗略地介绍了一下。我一看,这不就是一个编译器的工具吗?如果...  

评分

最近看编译原理,想用bison和flex写几个分析程序,哪里也找不到有卖这本书的,有哪位愿意转让的?  

评分

翻译质量:没有什么大的错误,但是读起来也不那么舒服。反反复复读了几遍,有些地方还是要结合 flex 和 bison 的手册来理解。 内容: 主要是以例子讲解了 Lex 和 YACC 的基本用法; 建议: 1、 先看一下《编译原理》 (龙书)对“上下文无关文法”的介绍 2、 实践一下书中的...  

评分

翻译质量:没有什么大的错误,但是读起来也不那么舒服。反反复复读了几遍,有些地方还是要结合 flex 和 bison 的手册来理解。 内容: 主要是以例子讲解了 Lex 和 YACC 的基本用法; 建议: 1、 先看一下《编译原理》 (龙书)对“上下文无关文法”的介绍 2、 实践一下书中的...  

用户评价

评分

说实话,这本书的语言风格非常学术化,初读时会觉得有些枯燥,因为它大量使用了严谨的数学符号和形式化定义。但如果你能坚持下去,你会发现这种学术的严谨性恰恰是它最大的优点。它确保了书中描述的每一个算法和规则都是无懈可击的。我记得在讲解LR(k)系列解析算法时,作者对lookahead(前看符号)的精细控制进行了极其细致的分解,这一点在很多同类书籍中常常被一笔带过。通过这本书,我终于理解了为什么某些语法结构会导致解析器的冲突,以及如何通过调整优先级和结合性来解决它们。对于我这种习惯于快速原型开发的人来说,这本书强迫我慢下来,去关注那些“不重要”的细节,而正是这些细节,构成了稳定、高效解析器的基石。它的价值在于建立了一个坚固的理论框架,让你在面对任何新语言或复杂语法时,都能胸有成竹。

评分

这本书的出版年份虽然不算最新,但其核心思想的永恒性使得它在今天依然具有极高的参考价值。虽然现在有了更多现代化的工具和框架,但理解底层原理的重要性从未减弱。对我而言,这本书最宝贵的地方在于它对“为什么”的解释,而非仅仅是“如何做”。作者的叙述方式有一种老派的匠人精神,他们似乎对计算机科学的黄金时代怀有敬意,并试图将那份对计算模型纯粹的理解传递给读者。它引导我思考,在面对新的编程范式或语言特性时,如何用形式化的方法去分析其结构。每一次重新翻阅,我都能从不同的角度发现新的闪光点,这正是一本优秀技术著作的标志。它不是一本读完就束之高阁的书,而更像是一个工具箱,里面装着解决复杂结构化文本处理问题的终极钥匙。

评分

我必须承认,这本书的阅读过程充满了挑战,但回报是巨大的。它没有对读者抱有任何“新手友好”的幻想,开篇就直奔主题,仿佛你已经对形式语言理论有了基本的了解。这种直截了当的风格,对于那些渴望深入理解底层机制的硬核程序员来说,无疑是一种享受。我特别欣赏作者在处理工具链集成部分时所展现出的洞察力。他们不仅仅描述了Yacc/Bison如何生成解析器,更深入地探讨了词法分析器(Lex/Flex)与生成代码的交互机制,那种数据流的传递,被描述得如同精密的机械装置一般。我个人最喜欢的是其中关于错误恢复策略的章节,作者没有给出万能的解决方案,而是提供了几种不同场景下的权衡分析,让我意识到在实际项目中,错误处理永远是一门艺术而非纯粹的科学。读完后,我感觉自己对“为什么编译器会这样工作”这个问题,有了一个全新的、更加深刻的认识。

评分

这套书的封面设计非常经典,那种深沉的蓝底配上醒目的白色字体,一下子就抓住了我的眼球。初翻的时候,我就被那种严谨而又富有逻辑性的排版所吸引。作者对符号的处理,尤其是对上下文无关文法(CFG)的阐述,简直是教科书级别的精准。他们似乎非常注重理论与实践的结合,每一个复杂的概念讲解之后,紧接着就是清晰的示例,这对我这种需要动手实践的开发者来说,简直是福音。我记得有一次我在处理一个递归下降解析器时遇到了瓶颈,回去查阅了书中关于消除左递归那几页,茅塞顿开。那种豁然开朗的感觉,至今记忆犹新。书中的插图虽然不多,但关键部位的图示,比如状态转换图的绘制,都极其到位,它们有效地帮助我理解了DFA/NFA构建过程中的细微差别。总而言之,这本书不仅仅是一本技术手册,更像是一位经验丰富的大师在你身边耐心指导,让你从根本上理解编译原理的精髓,而不是停留在表面的代码实现。

评分

这本书在实践应用层面的深度绝对超出了我的预期。我原以为它会停留在理论介绍和工具使用说明上,但它竟然详细探讨了如何将生成的解析器嵌入到已有的、复杂的应用框架中去。例如,书中关于如何处理语义动作(semantic actions)以及如何构建抽象语法树(AST)的章节,提供了非常实用的代码片段和设计思路。作者显然是资深的编译器工程师,他们不仅教你怎么“做”,更教你怎么“设计”一个可维护、可扩展的解析系统。我特别注意到书中对运算符重载和表达式求值的处理,它展示了如何将上下文信息有效地传递给语义分析阶段,这对于开发领域特定语言(DSL)至关重要。这本书的实用性在于,它提供了一个从文法定义到最终执行环境的完整蓝图,让你真正掌握了构建解释器和编译器的核心能力。

评分

有些地方的翻译很奇怪。 由于lex与yacc已经很老了,读了个大概以后就去读flex and bison了。

评分

做编译实习的参考书

评分

编译原理课程设计就是用lex+yacc做的

评分

所谓的技术手册就是基础实用,只是例子有些古旧,略乏新意。

评分

所谓的技术手册就是基础实用,只是例子有些古旧,略乏新意。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有