北航计算机学院编译,北航计算机学院编译习题讲解

a7f4a3f590493a1e451dd952a488fd7c.gif 北航计算机学院编译习题讲解

(50页)

1fb4d2155bdf11fac1524d2b6d7aac1c.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

11.90 积分

2008年7月2日1 3.1 3.1 词法分析的功能 3.2 3.2 词法分析程序的设计与实现 –状态图状态图 3.3 3.3 词法分析程序的自动生成 –有穷自动机、LEX有穷自动机、LEX 第三章:词法分析 2008年7月2日2 补充 正则文法正则文法 NFA正则表达式正则表达式 1 2 3 4 5 6 DFA 最小化最小化 2008年7月2日3 P67:1.画出下述文法的状态图 〈Z〉::=〈B〉e 〈B〉::=〈A〉f 〈A〉::= e |〈A〉e 使用该状态图检查下列句子是否是该文法的合法句子 f,eeff,eefe 解: f,eeff不是该文法的合法句子,eefe是该文法的合法句子 SA e BZ e f e 2008年7月2日4 解:(1) Z→A1|0 A→A0|0 (2) V={A,Z,0,1}Vn={A,Z}Vt={0,1} (3) L (G[S])= {0或0n1,n≥1} 0|00*1 P67: 2. 有下列状态图,其中S为初态,Z为终态。 (1) 写出相应的正则文法: (2) 写出该文法的V,Vn和Vt; (3) 该文法确定的语言是什么? S 开始 A 0 0 Z0 1 ?出错点:第(3)小题,文法确定的语言, 很多同学回 答出了,但是写的格式很不规范。 2008年7月2日5 P67: 5.令A,B,C是任意正则表达式,证明以下关系成立: A|A=A (A*)*= A* A*=ε| AA* (AB)*A = A(BA)* (A|B)* =(A*B*)*=(A*|B*) ?该题做得不错!但少部分同学最后一个等式没有证明。 另外,有些同学虽然证对了,但是过程比较烦琐或者是 不规范。 2008年7月2日6 ?证明:正则表达式表示的语言相等,则正则表达式相等 ⑴ 若用LA表示正则表达式A表示的语言,则A∣A表示的语言是:LA∪LA 因为LA∪LA=LA所以A∣A =A ⑵(A*)*表示的语言为(LA*)* A*表示的语言为LA* (LA*)*= (LA*)0∪ (LA*)1∪ (LA*)2 … ={ε} ∪ (LA*)1∪ (LA*)2 … 下面用数学归纳法证明(LA*)n= LA* ,n≥1 n=1时,显然成立 假定n=k时, (LA*)k= LA* ,则n=k+1时 (LA*)k+1= (LA*)kLA* = LA* LA* =( LA0∪LA1∪LA2 …) LA* = LA0LA* ∪ LA1LA* ∪ LA2LA* … =( LA0∪ LA1∪ LA2…)∪ LA1( LA0∪ LA1∪ LA2…)∪ LA2( LA0∪ LA1∪ LA2…)… = ( LA0∪ LA1∪ LA2…) ∪ (LA1∪ LA2∪ LA3…)∪ (LA2∪ LA3∪ LA4…) … = LA0∪ LA1∪ LA2… = LA* ∴ (LA*)k+1 = LA* ,故(LA*)n= LA* ,n≥1 ∴ (LA*)*= {ε} ∪ (LA*)1∪ (LA*)2 …= {ε} ∪ LA* = LA* 2008年7月2日7 ⑶ε︱AA*所表示的语言是: {ε}∪LA·LA* =LA0∪LA(LA0∪LA1∪LA2∪…) =LA0∪LA1∪LA2∪…=LA* 故ε︱AA*=A* ⑷(LALB)*LA=({ε}∪LALB∪LALBLALB∪LALBLALBLALB∪…) LA =LA∪LALBLA∪LALBLALBLA∪LALBLALBLALB∪LA… = LA∪({ε}∪LBLA∪LBLALBLA∪…) = LA(LBLA)* ∴(AB)*A=A(AB)* 2008年7月2日8 ⑸三个表达式所描述的语言都是LA和LB中符号串的任意组合 ∴(A|B)*=(A*B*)*=(A*|B*)* 2008年7月2日9 P67: 6.构造下列正则表达式相应的DFA (1) 1(0|1)*|0 (2) 1(1010*|1(010)*1)*0 ?在状态图中终止状态没有用双线圆标出 2008年7月2日10 (1)与1(0|1)*|0对应的NFA为: 0,1 2008年7月2日11 0 start 0 1 q2 q1 q01 确定化: 2008年7月2日12 (2) 1(1010*|1(010)*1)*0 AB C G DEF HIJKL MN Start 1 ε ε 1 01 ε 0 1 0 101ε 0 ε ε ε ε 2008年7月2日13 AB 1 Start C 0 1(1010*|1(010)*1)*0 D E F G HI 1 0 1 0 ε 1 0 1 0 1 2008年7月2日14 2008年7月2日15 P68:8.把图3.24的(a)和(b)分别确定化 1 开始 0 a a, b a ab {0}{0,1}{1} {0,1}{0,1}{1} {1}{0}-- 0,1 开始 0 1 a a b a b 2008年7月2日16 P68: 10 构造一DFA,它接受Σ={0,1}上所有满足如下条件的 字符串:每个1都有0直接跟在右边。 B 开始 A 0 1 0 (0|10)* 2008年7月2日17 补充题 1.有正则表达式1(0|1)补充题 1.有正则表达式1(0|1)* *101,构造DFA,并最小化101,构造DFA,并最小化 A B D F E IJK G C L 1 ε ε 1 1 0 10 ε ε ε ε ε Start ε H 01 {A}--{BCDFI} {BCDFI}{GHICDF}{EHICDFJ} {GHICDF}{GHICDF}{EHICDFJ} {EHICDFJ}{GHICDFK}{EHICDFJ} {GHICDFK}{GHICDF}{EHICDFJL} {EHICDFJL}{GHICDFK}{EHICDFJ} 2008年7月2日18 01 q0--q1 q1q2q3 q2q2q3 q3q4q3 q4q2q5 q5q4q3 01 q0--q1 q1q2q3 q2q2q3 q3q4q3 q4q2q5 q5q4q3 01 q0--q1 q1q2q3 q2q2q3 q3q4q3 q4q2q5 q5q4q3 01 q0--q1 q1q2q3 q2q2q3 q3q4q3 q4q2q5 q5q4q3 q0 q1 q2 q3 q4 01 q0-q1 q1q1q2 q2q3q2 q3q1q4 q4q3q2 q0 q1q2 1 Start 1 q3 q4 0 01 0 0 1 1 2008年7月2日19 A BC 1 Start 1 DE 10 1 0 01 {A}-{B} {B}{B}{BC} {BC}{BD}{BC} {BD}{B}{BCE} {BCE}{BD}{BC} 01 q0-q1 q1q1q2 q2q3q2 q3q1q4 q4q3q2 2008年7月2日20 01 q0-q1 q1q1q2 q2q3q2 q3q1q4 q4q3q2 q0 q1q2 1 Start 1 q3 q4 0 01 0 0 1 1 2008年7月2日21 2.试将下列自动机确定化并最小化:试将下列自动机确定化并最小化: a 10 start a a,b ab {0}{0,1}{1} {0,1}{0 关 键 词: 北航 计算机 学院 编译 习题 讲解

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值