- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南开大学编译原理第三章PPT课件
语法树表示正规式(续) start A B 1 C D 2 E 3 4 5 F e e e e e e e e a a b b b 6 # (a|b)*abb#对应的NFA 3.9.2 正规式直接转换为DFA 扩充正规式(r)#,构造语法树T nullable, firstpos, lastpos, followpos 函数nullable, firstpos, lastpos定义在T的结点上 followpos函数定义在position集上,其计算依赖上面三个函数 最后,利用followpos构造DFA followpos 符号只在标有该符号的position处匹配 position的相邻关系,e-closure(d(…)) followpos——表示位置间的相邻关系 i:一个position followpos(i):一个position集合,其中的每个position j满足: 存在一个输入串…cd… c在i处匹配,d在j处匹配(i,j相邻) j跟随(follow)i 例3.21 (a|b)*abb#:followpos(1)={1, 2, 3} B 1 C D 2 E 3 e e e e e e a b 1 1 2 2 1 3 4 5 a a b b a a b b followpos的计算 对子正规式,其首尾符号的对应位置之间存在跟随关系 rs,s的首位置跟随r的尾位置 r*,r的首位置跟随其尾位置 firstpos(n):对以n为根的子正规式,可匹配其首符号的位置的集合 lastpos(n):可匹配尾符号的位置的集合 前例: firstpos(n) = {1, 2, 3}, lastpos(n) = {6} nullable(n):可匹配空串 计算firstpos, lastpos, nullable 结点n firstpos(n) n是标记为e的叶结点 n是标记为位置i的叶结点 nullable(n) true false ? {i} nullable(c1) or nullable(c2) firstpos(c1) ∪ firstpos(c2) 计算firstpos, lastpos, nullable 结点n firstpos(n) nullable(n) true nullable(c1) and nullable(c2) if nullable(c1) thenfirstpos(c1) ∪ firstpos(c2)else firstpos(c1) firstpos(c1) 计算followpos lastpos计算同firstpos,c1、c2交换即可 followpos的计算 n——·结点,左孩子c1,右孩子c2,i∈lastpos(c1),c1的尾位置?对所有j∈firstpos(c2) ,j∈followpos(i) n——*结点,i∈lastpos(n),n的尾位置?对所有j∈firstpos(n) , j∈followpos(i) 例3.22 位置 123456 followpos {1,2,3}{1,2,3}{4}{5}{6}- 例3.22(续) 有向图 位置——状态,j∈followpos(i)——边i?j a a b b a a b b b 例3.22(续) 看作NFA firstpos(root)中的位置均为初态 边(i, j)标记为位置i的符号 #对应位置为唯一终态 a a b b a a b b b 算法3.5 正规式直接构造DFA 输入:一个正规式r 输出:一个DFA D,L(D)=L(r) 方法: 构造扩充正规式(r)#对应的语法树T 深度优先搜索T,计算函数nullable, firstpos, lastpos和followpos 构造D的状态集Dstates和状态转换表Dtran,算法如下所示。状态——位置集,firstpos(root) 为初态,#对应位置为终态。 算法3.5 (续) 构造Dstates和Dtrans算法 初始,Dstates中唯一状态为firstpos(root),设为未标记,其中root为(r)#对应语法树的根; while (Dstates中有未标记状态T) { 标记T; for (每个符号a) { U=∪followpos(p) (p∈T, 且位置p处符号为a); if (U不空且不在Dstates中) { 将U加入Dstates,设为未标记; } Dtran[T, a] = U; } } 例3.23 A=firstpos(root)={1, 2, 3} Dtrans[A, a]=followpos(1)∪followpos(3)={1,2,3,4}=B Dtrans[A, b
您可能关注的文档
- 打造土壤肥料的阴极--有机碳肥.ppt
- 执业兽医资格考试生理学第九单元_神经系统【Nervous_System】.ppt
- 扦插繁殖育苗技术.ppt
- 七年级英语上册《Unit 5 Do you have a soccer ball?Lesson 6》PPT课件 (新版)人教新目标版.ppt
- 七年级英语上册《Unit 4 Where is my schoolbag?Section A Period 1》PPT课件 (新版)人教新目标版.ppt
- 七年级英语Do you want to go to a moviePPT课件13.ppt
- 三信织造车间作业人员5S推行与管理培训PPT课件.ppt
- 七年级英语上册《Unit 6 Do you like bananas?lesson 4》PPT课件 (新版)人教新目标版.ppt
- 七年级音乐 春节序曲PPT课件 粤教版.ppt
- 三年级美术上册 梦幻中的城堡 1PPT课件 人教新课标版.ppt
最近下载
- 新时代中国特色社会主义理论与实践课件-2024年高教版研究生新中特教材.pdf VIP
- GB 31335-2024 铁矿开采和选矿单位产品能源消耗限额.docx VIP
- 北师大版五年级上册小数除法竖式计算练习100道及答案.docx VIP
- 山东科技出版社劳动实践指导手册二年级第2课清洁与卫生小件衣物清洗洗袜子 教案.doc VIP
- 2025年全球矿业报告:着眼未来.pptx VIP
- 压力容器使用单位每月压力容器安全调度会议纪要.doc VIP
- 原油进口联营协议.pdf VIP
- JB∕T 14641-2022 计算机和数据处理机房用间接蒸发冷却空调机组.pdf
- 西门子S7-1500 PLC编程及应用-全套PPT课件.pptx
- VCS56055160ArcWelding正版分享[共14页].pdf VIP
文档评论(0)