- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第一章练习和答案
例1设有文法G[S]:
S→a|(T)|(
T→T,S|S
试给出句子(a,a,a)的最左推导。
试给出句子(a,a,a)的分析树
试给出句子(a,a,a)的最右推导和最右推导的逆过程(即最左规约)的每一步的句柄。
【解】(1) (a,a,a)的最左推导
S=(T) =(T,S) =( T,S,S) =( S,S,S) =(a,S,S) =(a,a,S) =(a,a,a)
(2)(a,a,a)的分析树
(3) (a,a,a)最右推导 最左规约每一步的句柄
S=(T) 句柄为:(T)
=(T,S) 句柄为:T,S
=(T,a) 句柄为:a
=(T,S,a) 句柄为:T,S
=(T,a,a) 句柄为:第一个a
=(S,a,a) 句柄为:S
=(a,a,a) 句柄为:第一个a
例2已知文法G[Z]:
Z→0U|1V
U→1Z|1
V→0Z|0
请写出此文法描述的只含有4个符号的全部句子。
G[Z]产生的语言是什么?
该文法在Chomsky文法分类中属于几型文法?
【解】(1)0101,0110,1010, 1001
(2)分析G[Z]所推导出的句子的特点:由Z开始的推导不外乎图1所示的四种情形。
由Z推导出10或01后就终止或进入递归,而Z的每次递归将推导出相同的符号串:10或01。所以G[Z]产生的语言L(G[Z])={x|x∈(10|01)+ }
(3)该文法属于3型文法。
例3 已知文法G=({A,B,C},{a,b,c},P,A), P由以下产生式组成:
A→abc
A→aBbc
Bb→bB
Bc→Cbcc
bC→Cb
aC→aaB
aC→aa
此文法所表示的语言是什么?
【解】
分析文法的规则:
每使用一次Bc→Cbcc,b、c的个数各增加一个;
每使用一次aC→aaB或aC→aa, a的个数就增加一个;
产生式Bb→bB、 bC→Cb起连接转换作用。
由于A是开始符号,由产生式A→abc推导得到终结符号串abc;由产生式A→aBbc推导得到B后,每当使用产生式Bb→bB、Bc→Cbcc、bC→Cb、aC→aaB就会递归调用B一次,所产生的a、b、c的个数分别增加一个,因此推导所得的终结符号串为abc、aabbcc、aaabbbccc、…所以文法描述的语言为{ anbncn|n0}.
例4 构造描述语言L(G[S])={(n)n|n≥0} 的文法。
【解】(1)找出语言的一些典型句子:
n=0 ε
n=1 ( )
n=2 (())
…
所以, L(G[S])={ ε、( ) (())、((()))、…}
(2)分析句子的特点:
只含有(和),(和)的个数相同且对称, 句子中所含的符号数可无限, 句子的个数可无限。
(3)凑规则:由 S→ε|() 得到ε|(),由 A→ (S) 得到 (()),(()) 是在()的两边再加上一对()得到,((()))是在(())的两边再加上一对()得到,…所以将上述产生式合并为
S→(S) |ε。
(4)得到文法 G[S]: S→(S) |ε
(5)检验:语言所有的句子均可由文法G[S]推导出来, 文法G[S]推导出来的所有终结符号串均为语言的句子.
例5 构造描述语言L(G[S])={am bn |nm0} 的文法。
【解】找出语言的一些典型句子:abb、abbb、…、aabbb、aabbbb、…,语言的句子的特点是仅含有a、b, a在b的左边,b的个数大于a的个数,a的个数至少是1。
单独生成ck, k1 可用产生式 C→c |Cc
句子中要求b的个数大于a的个数,所以得到文法:
G[S]: S→Ab |Sb
A→aAb |ab
检验:语言所有的句子均可由文法G[S]推导出来, 文法G[S]推导出来的所有终结符号串均为语言L(G[S])的句子.
例6设有文法G[S]:
S→S*S|S+S|(S)|i
该文法是否为二义文法?
【解】该文法是二义文法,因为该文法存在句子i*i+i,该句子有两棵不同的语法树如图2所示.。
图2句子i*i+i的语法树
例7写一个文法,使其语言是奇数集,且每个奇数不以0开头。
【解】解题思路
首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法
您可能关注的文档
最近下载
- 中医养生与养生茶饮.pptx VIP
- 提高携带双J管患者的健康教育落实率.pptx
- 随机过程(北大何书元)-课后习题集答案.pdf VIP
- 水文预报课程设计报告.doc
- 智慧职教平法识图与钢筋算量(宁波职院)章节测验作业期末考试答案.docx
- 中职外研版英语基础模块2全册教案教学设计.docx
- 理想 RISO 9050 7050 3050 7010 3010 闪彩印王中文技术维修手册 后面可以参考理想闪彩印王 EX7200 EX9050 EX9000 EX7250 系列中文维修手册 .pdf
- 索爱E-19蓝牙音箱说明书用户手册.pdf
- 地铁可视化接地管理系统安装工法19.3.6.doc
- 初中地理教学中学生学习兴趣的培养获奖科研报告论文.docx
文档评论(0)