编译原理第二章练习

合集下载

编译原理第二章练习题

编译原理第二章练习题

11. 将上下文无关文法 G[S]改写为等价的正则文法。 G[S]: SabcA AbcB Ba
12. 已知文法 G[S]: SaB|bA Aa|aS|bAA Bb|bS|aBB 证明该文法是二义的。
13. 有人认为“无符号偶数”构造文法的思路如下:无符号偶数是无符号整数的 2 倍,所以构造的文法 G[<偶数>]如下, G[<偶数>]: <偶数><整>*2 <整><整><整>|<数> <数>0|1|2|3|4|5|6|7|8|9 这种想法对吗?为什么?
7. 有关表达式的文法 G[E]: EE+T|T TT*F|F Fi|(E) 求句型 F*F*(T+T*i)的短语、简单短语和句柄。
8. 若Σ={0, 1},则Σ2=? 9. 给出描述语言 L(G)={anbn|n1}的文法。
10. 文法 G1[A]和 G2[A]是否等价?为什么? G1[A]:AbA|a G2[A]:ABa|a BBb|b
班级:
姓名:
第二章练习题 学号:
一、填空题 1. 任一文法终结符集合和非终结符集合的交集是 。 2. 文法 G 产生的 的全体称为该文法描述的语言。 3. 已知文法 G[S]: SaSb|ab|,该文法描述的语言 L(G)= 。 4. 已知文法 G[S]: SAB, AAa|, BbBc|bc,该文法描述的语言 L(G)= 。 5. 文法 G[S]: SAB, AaAb|, BbBc|所描述的语言 L(G)= 。 6. 设字母表 A1={a,b,c,…,z},A2={0,1,2,…,9},则 A1 A2 中含有 个元素。 7. 设是文法 G 的句型, A 是非终结符, 若 则称是句 型相对于非终结符 A 的短语,若 则称是句 型相对于非终结符 A 的直接短语,若 则称是 句型的句柄。 二、判断题 1. 0 型文法中每条规则左部至少包含一非终结符。 2. 文法中的大写字母一定是非终结符。 3. 文法规则左边出现的符号一定是非终结符。 4. 3 型文法一定是 2 型、1 型和 0 型文法。 5. 文法的任一句型对应唯一的一棵语法树。 6. 文法的任一句型对应唯一的一个最左(右)推导。 7. 文法规则右部的符号一定是终结符号。 8. 一个语言的文法是唯一的。 9. 每个非终结符号产生的终结符号串集合都是该语言的子集。 10. 一个语言(如 PASCAL)的句子是无穷的。 11. 语法树描述的是一个文法。 12. 若 G 是正则文法,则 G 一定是上下文无关文法。

编译原理教程课后习题答案第二章

编译原理教程课后习题答案第二章

第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是。

a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指。

a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为。

a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。

通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。

每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。

2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。

【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。

先画出NFA M 相应的状态图,如图2-2所示。

图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。

表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。

编译原理各章习题

编译原理各章习题

第二章高级语言及其语法描述1、设有文法G[S]:S→NN→D|NDD→0|1|2|…|9试写出028和4321的最左推导和最右推导过程。

2、证明文法G[S]是二义性文法:S→if E then S else S |if E then S |sE→0|13、设有文法G[E]:E→E-T|TT→T/F|FF→i|(E)(1)试写出i/(i-i-i)的推导树。

(2)试写出(F-i)/F的短语、简单短语和句柄。

4、设∑={0,1},请给出∑上下列语言的文法(1)所有以0开头的串(2)所有以0开头,以1结尾的串5、证明文法G1和G2等价G1:S→0S1,S→01G2:A→0R,A→01,R→A1第三章有限状态自动机和词法分析1、请用中文描述下列正规式表示的正规集(1)0(0|1)*0(2)0*10*10*10*2、试写出∑={0,1}上下列集合的正则表达式:(1)所有以1开始和结束的符号串。

(2)恰含有3个1的所有符号所组成的集合。

(3)集合{01,1}。

(4)所有以111结束的符号串。

3、试写出∑={0,1}上下述集合的正则表达式: (1)试写出非负整数集的正则表达式。

(2)试写出以非5数字为头的所有非负整数集的正则表达式。

4、试将图3.1中所示的有限状态自动机M 最小化。

图3.1 M 的状态转换图5、设∑={a,b},试构造下述正则表达式的确定性有限状态自动机: (1)a(a|b)*baa (2)(a|b)*bbb *6、对于下列的状态转换矩阵:(1)分别画出相应的状态转换图。

(2)用自然语言分别描述它们所识别的输入串的特征 7、将图3.2所示的非确定的有限状态自动机确定化和最小化。

图3.2 非确定的有限状态自动机M第四章 自顶向下语法分析 1、从下列文法中消去左递归。

(1)S→Aa|bA→Ac|Sd(2)A→A∨B|BB→B∧C|CC→⌝D|DD→(A)|i2、请消去下面文法G[S]中的回溯G[S]:S→aBc|aB→bB|ε3、有文法G[S]:S→ABA→a|εB→b|ε(1)验证该文法是LL(1)文法;(2)请构造预测分析表4、考虑文法G[A]:A→aABc|d|εB→Bb|b(1)改写为LL(1)文法;(2)请构造预测分析表(3)给出句子adbc的分析过程第五章自底向上语法分析1、请对下列文法G[S]构造算符优先分析表S→bAbA→(B|aB→A a)2、文法G[S]:S→S(SaS→b该文法是LR(0)还是SLR(1)文法?3、文法G[A]:A→(A)|a构造该文法的LR(0)分析表,并请描述((a))的分析过程。

编译原理第二章练习题(注意里面的指数和带星号的地方)

编译原理第二章练习题(注意里面的指数和带星号的地方)

编译原理第二章练习题
专业班级: 学号: 姓名: 一,单选题
1.给定文法:A →bA|cc,下面的符号串为该文法句子的是( )。

① cc ② bcbcc ③ bccbcc ④ bbbcc
A. ①④
B. ①②③
C. ①③
D. ②③④
2.文法G[Z]和语言L ( G[Z ])存在如下关系( )。

A.一一对应:一个文法对应唯一的语言;并且反过来,一 个语言对应唯一的文法。

B.一个语言对应唯一的文法,反之则不然。

C.一个文法对应唯一的语言,反之则不然。

D.若G 为非二义性文法,则C 是正确的;若G 为二义性文法
,则一个文法不对应唯一的语言。

3. 有文法G[E]:E →-EE , E →-E ,E →a|b|c 则文法的句子--a -bc 的所有可能的语法树有( )棵。

A. 1
B. 2
C. 4
D. 3
4.有文法G[S],如果S * x ,( x ∈V ),则x 是( )。

A. 句型
B. 句子
C. A 和B
D. 非A 和B
二.构造一个上下文无关文法G ,使得:
L(G)={ m m b a
2 |m>0}
三.已知文法G[E]: E →ET+ | T
T →TF* | F
F →FP ↑| P
P →(E) | i
有句型TF*PP ↑+,问此句型的短语,简单短语和句柄是什么?(画语法树说明)
四.请用语法树证明文法G[s]是二义性的,G[s]:
S→SS | (S) | ( )。

五.已知文法G[Z]:Z→AB
A→aAb |ab
B→Bc | ε则,L(G[Z] )=?。

《编译原理》课后习题答案第二章

《编译原理》课后习题答案第二章
长度不大于3的符号串个数:26+936+33696=34658个
有代表性的符号串:a,a0,aa,a00,a0a,aa0
习题2
3.(1)E T T/F F/F (E)/F (E+T)/F (T+T)/F (F+F)/F (i+i)/i
(2)E E+T E+T+T E+T*F+F E+T*F+i E+T*T*F+i
M:M(0,a)=1 M(0,b)=2
M(1,a)=1 M(1,b)=4
M(2,a)=1 M(2,b)=3
M(3,a)=3 M(3,b)=2
M(4,a)=0 M(4,b)=5
M(5,a)=5 M(5,b)=1
化简:
1.分化
① {0,1} {2,3,4,5}
② {0,1} {2,4} {3,5}
2.合并
=M(M(D,1),1011)
=M(M(C,1),011)
=M(M(F,0),11)
=M(M(E,1),1)
=M(C,1)
=F
∴DFA D能接受字符串0011011
8.解:将状态转换图列表,即:
由左图可知,该状态转换图直接对应的是确定有穷状态自动机DFA
DFA D=({0,1,2,3,4,5},{a,b},M,0,{0,1})
A::=bc|bAc
(2)Z::=AB
A::=ab|aAb
B::=b|Bb
7. 解:题中要求文法是:
Z::=1|3|5|7|9|Z1|Z3|Z5|Z7|Z9|A1|A3|A5|A7|A9
A::=2|4|6|8|A0|A2|A4|A6|A8|Z0|Z2|Z4|Z6|Z8

编译原理-第三版-何炎祥-第二章习题答案

编译原理-第三版-何炎祥-第二章习题答案

2.1 写出下列文法所确定的语言:①、文法G = ({D},{0,1,2,3,4,5,6,7,8,9},P,D)其中,P={D→0|1|2|3|4|5|6|7|8|9};该文法定义的是0到9这10个数字{0,1,2,3,4,5,6,7,8,9};②、文法G = ({B,L,D},{0,1,2,3,4,5,6,7,8,9},P,B);其中,P = {B→D|L,L→1|2|3|4|5|6|7|89,D→0|L};该文法定义的是0到9这10个数字{0,1,2,3,4,5,6,7,8,9};③、文法G=({S,A},{a,b},P,S)其中,P={S→Aa,A→bA|a}。

该文件定义的是{b a a2|n≥0};2.2①因为语言的句子要求由3的整数倍的a组成,所以在构造产生式时,要保证每次产生的a 的个数是3,得到文法G[s]:s→aaa|Saaa②因为符号串中a、b的个数没有直接关系,所以,将句子分成两部分:aaa和b2m-1,分别进行构造,然后再合并,可由产生式A→a|aA得到aa,而由产生式B→b|bbB得到b2m-1,由于n≥1,m≥1,所以得到文法G【s】:S→ABA →a|aAB→b|bbB③因为句子中a和B的个数一样多,且a全部在句子的前半部分,b全部在句子的后半部分,所以在构造产生式时,可让a和b对称出现,得文法G【s】:s→aSb|ab④因为句子中a、b、c的个数没有直接关系,所以分别构造生成an。

Bmck的产生式,然后再合成,可由产生式a→aA|。

得到bm,再有产生式c→cc|、得到ck,⑤文法为GS:S→(+|-)(ABC|2|4|6|8)|0C→02468B→BAB0A→123456789⑥能被5整除的整数的末尾数必定是0或5,所以只要保证生成的整数末位数字是0或5即可,据此,构造描述能被5整除集合的文法如下:GS:S→(+|-)A(0|5)A→0123456789如果还要求整数除0外,均不以0开头,则文法为GS:S→(+|-)A(0|5)(0|5)⑦由于文法的句子a∈{a,b},因此文法的句子可分解为两种情形;以a打头的符号串以b打头的符号串于是只要在构造产生式时保证每次产生相同个数的a和b即可,可以构造文法如下LGS:S →aSbbSaabSbaSSba2.40型文法2.5P={S→aD|eE,D→bf,F→dB,A→bc,B→d}2.6、①3274的最左推导为:N→ND→NDD→NDDD→DDDD→3DDD→32DD→327D→3274①3274的最右推导为:N→ND→N4→ND4→N74→ND74→N274→D274→3274②65173的最左推导为:N→ND→NDD→NDDD→DDDDD→6DDDD→65DDD→651DD→6517365173的最右推导为:N→ND→N3→ND3→ND73→ND73→ND73→ND173→651732.7、要判断文法是否具有二义性,只要判断文法是否定义有这样的句子,该句子对应着两颗以上的语法树,或者说有两个以上不同的最右推导,或者说在对该句子进行规范规约的过程中,其规范句型的句柄不唯一。

编译原理第二章习题答案

编译原理第二章习题答案

第2章习题解答1.文法G[S]为:S->Ac|aBA->abB->bc写出L(G[S])的全部元素[答案]S=>Ac=>abc或S=>aB=>abc所以L(G[S])={abc}2.文法G[N]为:N->D|NDD->0|1|2|3|4|5|6|7|8|9G[N]的语言是什么?[答案]G[N]的语言是V。

V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD.... =>NDDDD...D=>D……D3.已知文法G[S]:Sf dAB Af aA|a B|bB问:相应的正规式是什么?G[S]能否改写成为等价的正规文法? [答案]正规式是daa*b* ;相应的正规文法为(由自动机化简来):G[S]:S —dA A —a|aB B —aB|a|b|bC C —bC|b也可为(观察得来):G[S]:S —dA A —a|aA|aB B —bB| &4.已知文法G[Z]:Z->aZb|ab写出L(G[Z])的全部元素。

[答案]Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbbL(G[Z])={a n b n|n>=1}5.给出语言{a n b n c1 n>=1,m>=0}的上下文无关文法。

[分析]本题难度不大,主要是考上下文无关文法的基本概念。

上下文无关文法的基本定义是:A-> B ,A € Vn ,B€( VnU Vt) *,注意关键问题是保证a n b n的成立,即“ a与b的个数要相等”,为此,可以用一条形如A->aAb|ab的产生式即可解决。

[答案]构造上下文无关文法如下:S->AB|AA->aAb|abB->Bc|c[扩展]凡是诸如此类的题都应按此思路进行,本题可做为一个基本代表。

基本思路是这样的:要求符合a n b n c m,因为a与b要求个数相等,所以把它们应看作一个整体单元进行,而c m做为另一个单位,初步产生式就应写为S->AB,其中A推出a n b n,B推出c m。

编译原理习题参考答案

编译原理习题参考答案

编译原理习题参考答案第⼆章2.构造产⽣下列语⾔的⽂法(2){a n b m c p|n,m,p≥0}解: G(S) :S→aS|X,X→bX|Y,Y→cY|ε(3){a n # b n|n≥0}∪{cn # dn|n≥0}解: G(S):S→X,S→Y,X→aXb|#, Y→cYd|# }(5)任何不是以0 打头的所有奇整数所组成的集合解:G(S):S→J|IBJ,B→0B|IB|ε,I→J|2|4|6|8, J→1|3|5|7|9}(6)(思考题)所有偶数个0 和偶数个1 所组成的符号串集合解:对应⽂法为 S→0A|1B|ε,A→0S|1C B→0C|1S C→1A|0B3.描述语⾔特点(2)S→SS S→1A0 A→1A0 A→ε解:L(G)={1n10n11n20n2… 1nm0nm |n1,n2,…,nm≥0;且n1,n2,…nm 不全为零}该语⾔特点是:产⽣的句⼦中,0、1 个数相同,并且若⼲相接的1 后必然紧接数量相同连续的0。

(5)S→aSS S→a解:L(G)={a(2n-1)|n≥1}可知:奇数个a5. (1) 解:由于此⽂法包含以下规则:AA→ε,所以此⽂法是0 型⽂法。

7.解:(1)aacb 是⽂法G[S]中的句⼦,相应语法树是:最右推导:S=>aAcB=>aAcb=>aacb最左推导:S=>aAcB=>aacB=>aacb(3)aacbccb 不是⽂法G[S]中的句⼦aacbccb 不能从S推导得到时,它仅是⽂法G[S]的⼀个句型的⼀部分,⽽不是⼀个句⼦。

11.解:最右推导:(1) S=>AB=>AaSb=>Aacb=>bAacb=>bbAacb=>bbaacb上⾯推导中,下划线部分为当前句型的句柄。

对应的语法树为:3 假设M:⼈ W:载狐狸过河,G:载⼭⽺过河,C:载⽩菜过河6 根据⽂法知其产⽣的语⾔是L={a m b n c i| m,n,i≧1}可以构造如下的⽂法VN={S,A,B,C}, VT={a,b,c}P={ S →aA, A→aA, A→bB, B→bB, B→cC, C→cC, C→c} 其状态转换图如下:7 (1) 其对应的右线性⽂法是:A →0D, B→0A,B→1C,C→1|1F,C→1|0A,F→0|0E|1A,D→0B|1C,E→1C|0B(2) 最短输⼊串011(3) 任意接受的四个串: 011,0110,0011,000011(4) 任意以1 打头的串.9.对于矩阵(iii)(1) 状态转换图:(2) 3型⽂法(正规⽂法)S→aA|a|bB A→bA|b|aC|a B→aB|bC|b C→aC|a|bC|b(3)⽤⾃然语⾔描述输⼊串的特征以a 打头,中间有任意个(包括0个)b,再跟a,最后由⼀个a,b 所组成的任意串结尾或者以b 打头,中间有任意个(包括0个)a,再跟b,最后由⼀个a,b 所组成的任意串结尾。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档