- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理三
北京交通大学 于双元 第三章 词法分析 §3.1 设计扫描器时应考虑的问题 §3.2 正则文法和状态转换图 §3.3 有限自动机 §3.4 正则表达式和正规集 §3.5 词法分析程序的实现 方法: 设有一NFA M’=(K’,∑,f’,S0,Z’) 现构造一∑上的DFA M=( K,∑,f,q0,Z) 使L(M’)=L(M) q0= ε_closure(S0) q0 ∈ K 对K中任一尚未标记的状态qi={Si1,Si2,…,Sim} Sik ∈K’ 做①标记qi;(画在状态图中,填入状态转换矩阵) ②对于每一a ∈∑,置 T= f’({Si1,Si2,…,Sim} , a); qj= ε_closure(T); ③ 若qj不在K中,则将qj作为一未加标记的状态 加入K中, f(qi,a)= qj, 添加到M上 a §3.4正规表达式与正规集 §3.4.1正则表达式与正规集 正则式:描述单词符号 正规集:正规式描述的语言 1、正则式的递归定义 设有字汇表V , 则: (VT就是∑) (1)ε,?,a, a∈Vt都是正则表达式, 正规集{ε}, ?, {a} (2)如果e1和e2是正则式,正规集分别为L1和L2 则 e1| e2是正则式,正规集为L1∪L2 e1·e2是正则式,正规集为L1L2 e1*是正则式, 正规集为L1* 注: *, · , | 的优先级依次降低 例:a∈Vt, b∈Vt, Vt={a,b} a是正规式 a*, ba, a|ba* 均是正规式 b是正规式 a|b,(a|b)*, a(a|b)*均是正规式 2、两个正则式相等: 两个正则式表示相同的语言 如(a|b)*=(a*|b*)*, 语言为{x∣x∈{a,b}*} 3、正则式的操作 结合律(ab)c=a(bc),(a|b)|c=a| (b|c) 交换律a|b=b|a 分配律 a(b|c)=ab|ac,(a|b)c=ac|bc 其他:r|r=r, r*=(r|ε)*= ε|r r* §3.4.2 由正则文法构造相应的正则式 求出以{ } 、 | 、 . 表示的文法的语言就是正则式, 用=代替→, 用+代替|求出联立方程组的解 1、文法 x→rx|t 右线性 r,t ∈Vt+ Lx=Lr·Lx∪Lt 为求解方便写成 x=rx+t 解方程求x 又x=rx=r…rx, Lx ={t,rt,rrt,…}即 r*t 可解得x=r*t [论断3.1]:方程组x=rx+t有形如x=r*t的解 2、文法 x=xr|t 左线性 r,t ∈Vt+ Lx= Lx · Lr∪Lt 为求解方便写成 x=xr+t 解方程求x 又x=xr=xr…r, Lx ={t,tr,trr,…}即 tr* 可解得x=tr* [论断3.2]:方程组x=xr+t有形如x=tr*的解 例:G[S]: S→aA 求文法对应的正规式 A→bA|aB|b B→aA 解:改写成 S=aA (1) A=bA+aB+b (2) B=aA (3) (3)代入(2)得 A=bA+aaA+b A=(b+aa)A+b A= (b+aa)*b (论断3.1) S=aA=a(b+aa)*b再用|代替+ 即正规式为a(b|aa)*b §3.4.3 由正则式构造FA M 第三章作业 –教材 3-3 3-6 3-7 3-9(1)(3) 3-12(1)(3) 3-13(1) 3-14(2)3-20 3-22(1) 第三章作业 –补充 某操作系统下合法的文件名规则为: device:name.extention,其中第一部分(device:)和第三部分(.extention)可缺省,若device、name和extention都是由字母组成,长度不限,但至少一位。 1.写出识别这种文件名的正则式; 2.画出其对应的NFA; 3.将上述NFA确定化为等价的DFA. 4.编程序完成文件名的识
原创力文档


文档评论(0)