第二章 作业【编译原理】

  • 前言
  • 推荐
  • 第二章 作业
  • 6
  • 7
  • 8
  • 9
  • 11
  • 最后

前言

以下内容源自《编译原理》
仅供学习交流使用

推荐

第二章 作业

6

6.令文法G6
N→D|ND
D→0|1|2|3|4|5|6|7|8|9
(1)G6的语言L(G6)是什么?
(2)给出句子0127、34和568的最左推导和最右推导。

(1)L(G~6~)={0,1,2,3,4,5,6,7,8,9}^+^
(2)
①0127
左 N=>ND=>NDD=>NDDD=>DDDD=0DDD=>01DD=>012D=>0127
右 N=>ND=>N7=>ND7=>N27=>ND27=>N127=>D127=>0127.
②34
左 N=>ND=>DD=>3D=>34
右 N=>ND=>N4=>D4=>34
③568
左 N=>ND=>NDD=>DDD=>5DD=>56D=>568
右 N=>ND=>N8=>ND8=>N68=>D68=>568

7

7.写一个文法,使其语言是奇数集,且每个奇数不以0开头。

G~7~(S):
		S->NZO|O
		N->1|2|3|4|5|6|7|8|9
		Z->XZ|ε
		X->0|1|2|3|4|5|6|7|8|9
		O->1|3|5|7|9

8

8.令文法为
E→T|E+T|E-T
T→F|TFIT/F
F→(E)|i
(1)给出i+ i
i、i* (i+i)的最左推导和最右推导;
(2)给出i+i+ i、i+i*i和i-i- i的语法树。

①i+ i*i
左 E=>E+T=>T+T=>F+T=>i+T=>I+T*F=>i+F*F=>I+i*F=>i+i*i
右 E=>E+T=>E+T*F=E+T*i=>E+F*i=>E+i*i=>T+i*i=>F+i*i=>i+i*i
②i* (i+i)
左 E=>T=>T*F=>F*F=>i*F=>i*(E)=>i*(E+T)=>i*(T+T)=>i*(F+T)=>i*(i+T)=>i*(i+F)=>i*(i+i)
右 E=>T=>T*F=>T*(E)=>T*(E+T)=>T*(E+F)=>T*(E+i)=>T*(T+i)=>T*(F+i)=>T*(i+i)=>F*(i+i)=>i*(i+i)
(2)语法树如图

第二章 作业(6789B)【编译原理】_编译原理

9

9.证明下面的文法是二义的:
S→iSeS|iS|i

需证明:存在一个句子的语法树是不同的
iiiei的语法树如图
所以S→iSeS|iS|i是二义的

第二章 作业(6789B)【编译原理】_编译原理_02

11

11.给出下面语言的相应文法
L1= {anbnci|n≥1, i≥0}
L2= {aibncn|n≥1,i≥0}
L3= {anbnambm|n, m≥0}
L4= {1n0m1m0n|n,m≥0}

①G1(S):
		S->XC
		X->aXb
		C->cC|ε
②G2(S):
		S->AX
		X->bXC
		A->aA|ε
③G3(S):
		S->XY
		X->aXb|ε
		Y->aYb|ε
④G4(S):
		S->1S0|0S1|ε

最后

祝大家逢考必过
点赞收藏关注哦