西理工编译原理试题集1-7(3)
stmt matched-stmt if expr then matched-stmt e if esle stmt esle stmt matched-stmt expr then e stmt other expr then matched-stmt e other if matched-stmt other
则上面给出的if-then-else文法仍是二义性的。 2. 考虑文法G[bexpr]:
bexpr→bexpr or bterm | bterm bterm→bterm and bfactor | bfactor bfactor→not bfactor| ( bexpr ) | true | false
(a) 请指出此文法的终结符号、非终结符号和开始符号。 (b) 试对于句子not(true or false)构造一棵分析树。 (c) 试说明此文法所产生的语言是全体布尔表达式。 答:
(a) 终结符号为:{or, and, not, (, ), true, false} 非终结符号为:{bexpr, bterm, bfactor} 开始符号为:bexpr
(b) 句子not(true or false)的分析树为: (c) 用归纳法说明如下:
(1) 不含运算的布尔表达式,常数true和false由此文法产生:
bexpr => bterm => bfactor => true bexpr => bterm => bfactor => false
(2) 设结论对于少于n(n≥1)个运算的布尔表达式成立,即若be1和be2是含有少于n个运算的布尔表达式,则有:bexpr=>+be1,bexpr=>+be2。
(3) 对于含有n个运算的布尔表达式,可表示成下面三种形式:
(a) (be1) or (be2) (b) (be1) and (be2) (c) not (be1)
对于(a):bexpr => bexpr or bterm => bterm or bterm => bfactor or bterm => (bexpr) or bterm =>+(be1) or bterm => (be1) or bfactor => (be1) or (bexpr) =>+ (be1) or (be2) 同理,有:
Bexpr=>+ (be1) and (be2) Bexpr=>+ not (be1)
综上所述,此文法所产生的语言是全体布尔表达式。 3. 已知文法G[S],其产生式为:S→(S)| ?
(a)L(G)是什么?
(b)对于(a)的结果,请给出证明。 答:
(a) 解:L(G)?{()|n?0} (b)证明:
首先证明L(G)?{()|n?0} 对推导次数进行归纳
1):当推导次数为1时,使用产生式S→?,此时左括号与右括号个数为0 2):假设推导次数为n时(a)成立,即: S?(((...S...)))?(((......)))
n?1n?1n?1n?1?nnnn则推导次数为n+1次时,多使用一次产生式S→(S)即:
S?(((...S...)))?(((...S...)))?(((......)))
n?1n?1nnnn?推导次数为n+1次时(a)成立。
根据(1)(2)可得:L(G)?{()|n?0}
nn其次证明{(n)n|n?0}?L(G) 对n进行归纳
1):当n=0时,使用产生式S→? 即可;
2):假设当n=k时,结论成立,即(k)k?L(G),下面证n=k+1时结论成立。 由(k)k?L(G),其推导过程如下:
S?(((...S...)))?(((......)))
kkkk?当n=k+1时,推导过程如下:
S?(((...S...)))?(((...S...)))?(((......)))
kkk?1k?1k?1k?1?故(k?1)k?1?L(G)
根据(1)(2)可得:{(n)n|n?0}?L(G) 根据1,2可知:L(G)?{(n)n|?0} 4. 试构造生成下列语言的上下文无关文法: (1) { anbnci | n≥1, i≥0 -
(2) { w | w∈{a,b}+,且w中a的个数恰好比b多1 } (3) { w | w∈{a,b}+,且|a|≤|b|≤2|a| - 答:
(1)把anbnci分成anbn和ci两部分,分别由两个非终结符号生成,因此,生成此文法的产生式为: S → AB A → aAb|ab B → cB|ε
(2)令S为开始符号,产生的w中a的个数恰好比b多一个,令E为一个非终结符号,产生含相同个数的a和b的所有串,则产生式如下: S → aE|Ea|bSS|SbS|SSb
E → aEbE|bEaE|ε
(3) 设文法开始符号为S,产生的w中满足|a|≤|b|≤2|a|。因此,可想到S有如下的产生式 (其中B产生1到2个b): S → aSBS|BSaS|ε B → b|bb
5. 已知文法G[S]:
S→AB A→aA|a B→bB|b
求该文法所定义的语言。 答:
从规则2可推出: a,aa,aaa,?? 从规则3可推出: b,bb,bbb,?? 再从规则1可推出句子:
ab, aab, aabb, aaab, abbb,……
即,从S出发可推出多个a后跟多个b的字符串,且a的个数与b的个数不尽相同。 故: L(G)={ambn| m,n≥1}
6. 考虑下面上下文无关文法G[S]:
S→SS*|SS+|a
(1) 对于符号串aa+a*分别给出最左推导和最右推导过程,并为该串构造语法树。 (2)G[S]的语言是什么? 答:
(1)此文法生成串 aa+a*的最右推导:
S=>SS*=>SS*=>Sa*=>SS+a*=>Sa+a*=>aa+a* 此文法生成串 aa+a*的最左推导:
S=>SS*=>SS+S*=>*=>aS+S*=>aa+S*=>aa+a*
(2)该文法生成的语言是:*和+的后缀表达式,即逆波兰式。
7 令文法G为 N→ D | ND
D→ 0 | 1 | 2 | 3 | 4 | 5 | 6| 7 | 8 | 9 (1) G的语言L(G)是什么?
(2) 给出句子0127、34和568的最左推导和最右推导。 答: (1)
∵N N?ND?NDD?NDDD?NDDDD……?DD……D ∴L(G)={d(n+1)|n≥0, d∈{0, 1, …, 9}}
允许以0开头的自然数(十进制无符号整数); (2)
0127最左推导:N?ND?NDD?NDDD?DDDD?0DDD?01DD?012D?0127 0127最右推导:N?ND?N7?ND7?N27?ND27?N127?D127?0127 8 写一个文法,使其语言是奇数集,且每个奇数不以0开头。
答:(首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法分3部分来完成。分别用3个非终结符来产生句子的第1位、中间部分和最后一位。
引入几个非终结符,其中,一个用作产生句子的开头,可以是1-9之间的数,不包括0;一个用来产生句子的结尾,为奇数;另一个则用来产生以非0整数开头后面跟任意多个数字的数字串,进行分解之后,这个文法就很好写了。)
…… 此处隐藏:1416字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




