编译原理第二章习题

一、填空题

  1. 假设G是一个文法,S是文法的开始符号,如果S=>*x,则称x是___句型_______。
  2. 文法G产生的_____句子___________的全体是该文法描述的语言。
  3. 文法 G[S]: S→AB A→aA|Ɛ B→bBc|bc描述的语言 L(G[S])={anbmcm,n>=0,m>=1}__________。
  4. 已知文法G[E]: E→T|E+T|E-T T→F|TF|T/F F→(E)|i
    该文法的开始符号(识别符号)是___E_________,终结符号集合VT是_{+,-,
    ,/,(,),i},非终结符号集合VN是{E,T,F}___。
  5. 一个文法G[Z]若存在推导序列 Z=>+…Z…,则称G[Z]是__递归______文法,这类文法所产生的句子有__无数________个。
  6. 已知文法G[Z]: Z→U0|V1 U→Z1|1 V→Z0|0,请写出全部由此文法描述的只含有四个符号的句子:0101,1010,1001,0110___________________。
    二、单项选择题
  7. 文法G所描述的语言__a__________的集合。
    a.文法G的字母表V中所有符号组成的符号串
    b.文法G的字母表V的闭包V*中的所有符号串
    c.由文法的识别符号推出的所有符号串
    d.由文法的识别符号推出的所有终结符号串
  8. 巴科斯范式(即BNF)是一种广泛采用的____c________的工具。
    a.描述规则 b.描述语言 c.描述文法 d.描述句子
  9. 一个语言的文法是____b______。
    a.唯一的 b.不唯一的 c.个数有限的
  10. 设有文法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}
  11. 已知语言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
  12. 描述语言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|Ɛ
  13. 设有文法G[I]: I→I1|I0|Ia|Ic|a|b|c,下列符号串中是该文法句子的有___b_______。
    ①ab0 ②a0c01 ③aaa ④bc10
    a.① b.②③④ c.③④ d.①②③④
  14. 文法的二义性和语言的二义性是两个___a_______的概念。
    a.不同 b.相同 c.无法判断
  15. 设有文法G[S]: S→S*S|S+S|(S)|a,该文法___a____二义性文法。
    a.是 b.不是 c.无法判断

三、简答题

  1. “符号就是字符”,对吗?
    答:这种说法不对,符号是字母表中的元素,不能把符号理解成字符,如4个保留字的字母表{begin,end,for,while},此时begin、end、for、while。都是一个符号,因为他们是字母表中的元素。
  2. “文法规则的左部就是非终结符号”这种说法对吗?
    答: 不对。对于上下文无关文法而言,非终结符号是只在规则左部出现的符号,对于其他类型的文法而言,并非所有在规则左部出现的内容都是非终结符号。
  3. 设有文法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))
  4. 试构造生成语言L={anbnci|n≥1,i≥0}的文法。
    答:由于语言的句子中符号的个数可以任意多个,所以必然要用递归规则。又句子中a 和b的个数一样多,但与c的个数不同,所以,将生成含a ,b 的部分与生成c的部分分开。因此文法为:G[S]:S→AB A→aAb|ab B→Bc|Ɛ
  5. 有如下文法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为结尾的数}
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值