一.单选题
1.文法G所描述的语言是( )的集合。
A、文法G的字母表V中所有符号组成的符号串。
B、文法G的字母表的闭包V*中的所有符号串。
C、由文法的开始符推出的所有符号串。
D、由文法的开始符推出的所有终极符号串。
正确答案: D
由文法定义可知,文法所定义的语言是由该文法的开始符推导出的所有的终极符串的集合。
2.下列文法能够产生语言的是( )。
A、Z→aZb | aAb | b
A→aAb | b
B、A→aAb
A→b
C、Z→AbB
A→aA | a
B→bB | b
D、Z→aAb
A→aAb | b
正确答案: D
注意语言特点,所有两边a和b的个数对称,至少有一个。
3.由文法的开始符经过0步或多步推导产生的符号串是:
A、短语
B、句柄
C、句型
D、句子
正确答案: C
由句型的定义可知。
4.如果文法G是无二义性的,则它的任何句子α:
A、最左推导和最右推导对应的语法树必定相同
B、最左推导和最右推导对应的语法树可能不同
C、最左推导和最右推导必定相同
D、可能存在两个不同的最左推导
正确答案: A
如果文法G是无二义性的,对它的任何句子α来说,最左推导和最右推导对应的语法树必定相同,只不过最左推导是先生长左边的枝叶,而最右推导先生长右边的枝叶;对于D,如果有两个不同的最左推导,则必然有二义性。因此选A。
5.下列哪些方法可以用于文法等价变换( )。
① 消除空产生式; ② 消除左递归; ③ 消除单产生式; ④ 消除无用产生式; ⑤ 消除开始符对应的产生式; ⑥ 消除二义性句型。
A、①②③④
B、①②③
C、①②③④⑤
D、①②③④⑤⑥
正确答案: A
熟悉常见文法等价变换方法。其中⑤会导致文法不等价,⑥的说法本身是错的。
6.假设有如下文法:
T→T*F | F
F→F↑+P | P
P→(T) | a
该文法的句型T*P↑ +(T*F)的简单短语是( )。
① (T*F) ② T*F ③ P ④ P↑+(T*F)
A、①③
B、②③
C、③
D、①④
正确答案: B
按定义求简单短语需从开始符进行推导,找出一步推导能导出的字串,较难。可以画出句型的语法树,在树中找高度是1的子树,其叶节点从左向右排列形成的串,即是所求。
7.已知如下文法:
E→TE’ | e
E’→+TE’ | e
T→FT’
T’→*FT’ | e
F→(E) | id
则Follow(F)=( ).
A、{*,+}
B、{*,e}
C、{+,#, )}
D、{*,+,#,)}
E、{#,)}
F、{*,+,#, ),id}
正确答案: D
依据Follow集合的计算算法可求。
二.填空题(共1题,20.0分)
已知如下文法:
S→eT | RT
T→DR | ε
R→dR | ε
D→a | bd
则First(S)=( ① ), First(T)=( ② ), First(R)=( ③ ), First(D)=( ④ )。
正确答案:① {a,b,d,e,ε},②{a,b,ε},③ {d,ε},④{a,b}
三.简答题
1.给出下面语言的上下文无关文法描述:(答案不唯一)
1) L={anb2n+1 | n>=0}
2) L= {aibj | j≥ i≥1}
3) L={anbbn | n>=1}
4) L= {anbmambn | n≥1, m≥0}
正确答案:
1)S ->aSbb | b
2) S-> aSb | Sb | ab
3) S->aAb A->aAb|b
4) S -> aSb | aBb B-> bBa | 空串
PS:
吉大软院的编译原理课应该是大三下的时候开设的,刚好我们赶上了疫情所以只能是线上学习。对我个人而言,我更偏向于线上非直播类型的授课方式,因为在线下课堂里听老师上课难免会走神,一走神就跟不上老师的节奏,线上视频课就可以更方便地翻看不懂的知识点,方便平时梳理知识点及期末复习。刚好最近考试和毕设选题还有其他东西该忙的也都忙完了,想着把以前的资料整理一下分享给学弟学妹们(其实没有学妹了),就当作回馈当初帮助我的学长们。
分享的资料清单包括平时所用教材、测验题以及期末复习资料。
资料皆仅限于学习交流用途,禁止商用!
需要的同学可以关注我的个人微信公众号:Jose的写字台
关注后回复关键字即可,之后会有更多的资料整理完毕后发布在公众号上,希望能帮助到你们!