编译原理习题精选

出版社:中国科学技术大学出版社
出版日期:2002-1
ISBN:9787312013898
作者:陈意云/张昱主编
页数:128页

作者简介

《编译原理习题精选》是作者从教材上的习题以及作者15年来所设计的各种试题中,精先出近150道题目,将作者多年讲授这门课程的一些经验和体会写到习题解答中。按照编译原理教学大纲,把这些习题分成九章,以便在课程学习的同时使用《编译原理习题精选》。这九章是词法分析、语法分析、语法制导翻译、静态检查、运行环境、中间代码生成、代码生成、代码优化以及和编译有联系的一些问题。《编译原理习题精选》的习题涉及面广、灵活性强、机械性和重复性少,对学习编译原理课程很有帮助。

书籍目录

前言第一章 词法分析第二章 语法分析第三章 语法制导的翻译第四章 静态检查第五章 运行环境第六章 中间代码生成第七章 代码生成第八章 代码优化第九章 和编译有联系的一些问题

编辑推荐

《编译原理习题精选》是本科生、自学考试考生和其他人员学习编译原理和技术的参考书,也是报考研究生的考生的一本复习参考书。

章节摘录

版权页:   插图:   分析 在这个文法中,matched_stmt本意是表示then和else配对的语句,但是它的选择if expr then matched_stmt else stmt不能保证这一点,因为else后面是任意的stmt,而不是matched_stmt。我们找到了可能产生二义的地方,但怎样找一个最短的句型来验证该文法的二义? 我们肯定要用then 比 else多的句型,这样才有可能出现else和不同的then配对的可能。最简单的情况是两个then和一个else,但是产生式matched_stmt→if expr then matched_stmtelse stmt使得这一个else不可能和句型中第一个then配对,因此这种情况下无二义。估计三个then和一个else的情况也不出现二义,如果它会出现,那么两个then和一个else也应该会出现。现在考虑三个then和两个else的情况,句型是 if expr tben if expr then matched_stmt else if expr then matched_stmt else stmt为了保证else和它最靠近的还没有配对的then相配的可能性,我们在else的前面用的都是matched_stmt。用这个句型做尝试,我们发现了两个不同的最左推导。 解决这样的问题,一定要先分析清楚,然后再去尝试,以减少盲目性。 2.5 为字母表{a,b}上的下列每个语言设计一个文法。 (a)每个a后面至少有一个b的所有串。 (b)a和b的个数相等的所有串。 (c)a和b的个数不相等的所有串。 (d)形式为xy且x≠y的所有串。 答案(a)S→ ab S丨bS丨ε 分析(a)该语言是一个正规语言,它可以用正规式(ab丨b)*表示。上面的文法对应到该正规式的结构。 答案(b)S→aB丨bA丨ε A→aS丨bAA  B→bS丨aBB 分析(b)字母表{a,b}上的任何串,从其所含的a和b的个数来分,属于下面三种情况之一。 •a和b的个数相等; •a比b的个数多,我们可以把这样的串分成若干个a比b的个数多一个的子串; •b比a的个数多,我们可以把这样的串分成若干个b比a的个数多一个的子串。 根据上面的分析,我们使用三个非终结符: •用S来推导a和b的个数相等的串(显然S应该作为开始符号); •用A来推导a比b多一个的串; •用B来推导b比a多一个的串。


 编译原理习题精选下载



发布书评

 
 


精彩短评 (总计1条)

  •     果然是大师编写的书,里面的习题讲解的到位,看题的时候都觉得是一种享受。只是书页偏黄,不适合长时间看。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024