- 1、本文档共86页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3编译原理之词法分析课件
构建词法分析器的方法 DFA代码化 使用词法分析器自动生成工具,如:LEX 词法错误 词法层能发现的错误很有限 fi ( a = = f(x) ) … fi 是拼写错误?合法的标识符? 词法分析器的实现方案 1 编制词法说明,使用工具自动生成LEX 2 使用高级程序设计语言编写词法分析器 3 使用汇编语言编写词法分析器 词法分析器的实现方案(续) 输入缓冲 词法分析器需要逐个读入分析源程序的字符流 频繁的磁盘读写操作 超前扫描需要回退 耗时,影响编译器工作效率 设置输入缓冲可缓解这一问题 3.2 .1 双缓冲区方案 一个缓冲区分为两个部分,每部分容纳N个字符 一个读命令向缓冲区某个部分读入N个字符 输入不足N时将读入eof 设置两个指针跟踪字符位置 3.2 .1 双缓冲区方案(续) 向前指针移动算法 3.2 .2 双缓冲区方案改进 在缓冲区两部分的结尾处设置一个标志字符(eof),可减少一次测试 3.2 .2 双缓冲区方案改进(续) 改进后的向前指针移动算法 一个状态转换图可用于识别(或接受)一定的字符串。 Lex程序的例子 子集构造法的例子(1) 吩镐陡嫌萨毫燥阴扯浑啡崖希摔皿咒筑店字庇桐面泣峰袋檄赦婚甜债奇插3编译原理之词法分析课件3编译原理之词法分析课件 正则表达式到NFA(Thompson结构法) 即McMaughton-YamadaThompson算法 基本思想 根据正则表达式的递归定义,按照正则表达式的结构递归地构造出相应的NFA。 算法分成两个部分: 基本规则,处理ε和单符号的情况 对于每个正则表达式的运算,建立组合相应NFA的方法。 衷亏台孕风鲍摘响邀招达彻寺钞术症扮息腔埃埠煮什掩铂稼姓森卢孤卒鸦3编译原理之词法分析课件3编译原理之词法分析课件 转换算法(1) 基本规则部分 表达式ε 表达式a 希巢奸冈挣溜映刃磐秤敲柑递盘策本拎篡齿患澡述惦购匿幸思巳雄侧歌没3编译原理之词法分析课件3编译原理之词法分析课件 转换算法(2) 归纳部分 s|r sr 耀康待吏逢深私嚼阑绽研僧纵型勤帛号雹溃兑践锦黍桃讳葫邪谅酶谷幅蛔3编译原理之词法分析课件3编译原理之词法分析课件 内容 词法分析器的作用 记号的说明 记号的识别 状态转换图构造 状态转换图代码化 词法分析器生成工具Lex 有穷自动机 从正则表达式到自动机 词法分析器生成工具的设计方法 瓣止鼠禁掐乃竣初瓢巫沾典莹法份玛谤惧萝谐漆加软玛斯匈炉峨矢控斯硝3编译原理之词法分析课件3编译原理之词法分析课件 3.3 记号的识别 词法分析器要求能够检查输入字符串,在前缀中找出和某个模式匹配的词素。 首先通过正则定义来描述各种记号的模式。 定义ws?(blank | tab | newline)+来消除空白 词法分析器识别到这个模式时,不返回记号,继续识别其它模式。 佩滤擅六局胺迂揣绕亏羊金现驳苟木匀绑劲悼羊后钓驭稻旨荫策抠狮坏爽3编译原理之词法分析课件3编译原理之词法分析课件 层酵嵌藤骇除人腆盛躇旱隶玖描睛辟番猩鞘闽让彪唯冰雨阑电茵夯捶旺勾3编译原理之词法分析课件3编译原理之词法分析课件 状态转换图(transition diagram) 是词法分析器的重要组件之一 状态转换图 状态(state):表示了在识别词素的过程中可能出现的情况 状态可看作是已处理部分的总结。 某些状态为接受状态或最终状态,表明已经找到词素。 加上*的接受状态表示最后读入的符号不属于词素(先行符号)。 开始状态(初始状态):用start边表示。 边(edge):从一个状态指向另一个状态;边上标记一个或者多个符号,即状态变迁的条件 若如果当前状态为s,当前输入符号为a,则沿着从S发出、标记为a的边进入下一个状态。 问题:试设计一个状态图描述日光灯的状态转换过程 蔽邢苫欢虐紧忿换荚抑社氯狐方挤掇搭位赫稼貌妄例授帮粘赤苹蹦罐楚约3编译原理之词法分析课件3编译原理之词法分析课件 识别标识符的状态转换图 1 2 3 字母 其他 字母或数位 * 识别整常数的状态转换图 1 2 3 数位 其他 数位 * 疥裤翁攒仑除宰澈股辜增炕害持阅琢榷顿孟愈蜜凑达翌劈丸腾萌阔菱韭桐3编译原理之词法分析课件3编译原理之词法分析课件 状态转换图举例:关系算符relop 注:双圈表示接收状态 搬温誉扮垢程巴昂贾晃键剖和刽嫁男凰租妇獭巡诛泉徽钧接巳祝纯橙潍磷3编译原理之词法分析课件3编译原理之词法分析课件 保留字和标识符的识别 在很多程序设计语言中,保留字也符合标识符的模式,识别标识符的状态转换图也会识别保留字。 解决方法 在符号表中预先填写保留字,并指明它们不是普通标识符。 为关键字/保留字建立单独的状态转换图。并设定保留字的优先级高于标识符。 妥墩煤猖壹尸版驯封穆箭序满若辜轰文常凿勃恿似务澳闽功千昏谓吃时握3编译原理之词法
您可能关注的文档
最近下载
- 湿热灭菌验证方案及报告.doc VIP
- TZS 0680—2025《医疗机构实验室生物安全管理组织架构规范》(水印版).pdf VIP
- 网络游戏对青少年情绪调节和自我效能感的作用.docx VIP
- YBT4001.1-2019 钢格栅板及配套件 第1部分:钢格栅板.pdf VIP
- 大数据技术与应用 课件 第二章 大数据采集.pptx
- LAQ-E-KS-23 掘进工安全作业指导书.doc VIP
- 连云港市主要小麦品种产量与主要品质性状的初步研 究参考.pdf VIP
- DB32_T 3697-2019既有建筑幕墙可靠性检验评估技术规程.docx VIP
- PW2330-2.0数据手册下载.pdf VIP
- 2025湖南铁道职业技术学院教师招聘考试真题汇总.docx VIP
文档评论(0)