一、填空题
- 假设G是一个文法,S是文法的开始符号,如果S=>*x,则称x是___句型_______。
- 文法G产生的_____句子___________的全体是该文法描述的语言。
- 文法 G[S]: S→AB A→aA|Ɛ B→bBc|bc描述的语言 L(G[S])={anbmcm,n>=0,m>=1}__________。
- 已知文法G[E]: E→T|E+T|E-T T→F|TF|T/F F→(E)|i
该文法的开始符号(识别符号)是___E_________,终结符号集合VT是_{+,-,,/,(,),i},非终结符号集合VN是{E,T,F}___。 - 一个文法G[Z]若存在推导序列 Z=>+…Z…,则称G[Z]是__递归______文法,这类文法所产生的句子有__无数________个。
- 已知文法G[Z]: Z→U0|V1 U→Z1|1 V→Z0|0,请写出全部由此文法描述的只含有四个符号的句子:0101,1010,1001,0110___________________。
二、单项选择题 - 文法G所描述的语言__a__________的集合。
a.文法G的字母表V中所有符号组成的符号串
b.文法G的字母表V的闭包V*中的所有符号串
c.由文法的识别符号推出的所有符号串
d.由文法的识别符号推出的所有终结符号串 - 巴科斯范式(即BNF)是一种广泛采用的____c________的工具。
a.描述规则 b.描述语言 c.描述文法 d.描述句子 - 一个语言的文法是____b______。
a.唯一的 b.不唯一的 c.个数有限的 - 设有文法G[S]=({b},{S,B},S,{S→b|bB, B→bS}),该文法所描述的语言是___c_______。
a. L(G[S])={bi|i≥0} b. L(G[S])={b2i|i≥0}
c. L(G[S])={b2i+1|i≥0} d. L(G[S])={b2i+1|i≥1} - 已知语言L={anbbn|n≥1},则下列文法中_d_________可以产生语言L。
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 - 描述语言L={ambn|n≥m≥1}的文法为___d_______。
a. Z→Abb, A→aA|a,B→bB|b
b. Z→ABb, A→Aa|a,B→aBb|b
c. Z→Ab, A→aAb|a d. Z→aAb, A→Ab|aAb|Ɛ - 设有文法G[I]: I→I1|I0|Ia|Ic|a|b|c,下列符号串中是该文法句子的有___b_______。
①ab0 ②a0c01 ③aaa ④bc10
a.① b.②③④ c.③④ d.①②③④ - 文法的二义性和语言的二义性是两个___a_______的概念。
a.不同 b.相同 c.无法判断 - 设有文法G[S]: S→S*S|S+S|(S)|a,该文法___a____二义性文法。
a.是 b.不是 c.无法判断
三、简答题
- “符号就是字符”,对吗?
答:这种说法不对,符号是字母表中的元素,不能把符号理解成字符,如4个保留字的字母表{begin,end,for,while},此时begin、end、for、while。都是一个符号,因为他们是字母表中的元素。 - “文法规则的左部就是非终结符号”这种说法对吗?
答: 不对。对于上下文无关文法而言,非终结符号是只在规则左部出现的符号,对于其他类型的文法而言,并非所有在规则左部出现的内容都是非终结符号。 - 设有文法G[S]:S→a|Ɛ|(T) T→T,S|S 请给出句子 (a,(a,a))的最左、最右推导。
答:最左推导为:S=>(T)=>(T,S) =>(a,S)=>(a,(T))=>(a,(Y,S)) =>(a,(S,S)) =>(a,(a,S)) =>(a,(a,a))
最右推导为:S=>(T)=>(T,S)=>(T,T) =>(T,(T,S))=>(T,(T,a)) =>(T,(S,a)) =>(T,(a,a)) =>(S,(a,a))=>(a,(a,a)) - 试构造生成语言L={anbnci|n≥1,i≥0}的文法。
答:由于语言的句子中符号的个数可以任意多个,所以必然要用递归规则。又句子中a 和b的个数一样多,但与c的个数不同,所以,将生成含a ,b 的部分与生成c的部分分开。因此文法为:G[S]:S→AB A→aAb|ab B→Bc|Ɛ - 有如下文法G1[S]:S→AB A→aAb|ab B→Bc|Ɛ
文法G2[S]:S→SAS|b|c A→aaA|a
它们分别描述什么样的语言?
答:G1描述的语言为:{anbncm|n>=1,m>=0}
G2描述的语言为:{b,c或者以b开头以c结尾、中间是被b或者c分割的奇数个a,以b或者c为结尾的数}