- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析
第三讲
词法分析概述
词法分析程序的设计与实现
词法分析
词法分析程序的自动构造
词法分析概述
词法分析程序(Lexical Analyzer)或
词法扫描程序(Scanner)的作用
从左至右扫描构成源程序的字符流
识别出有词法意义的单词(Lexemes)
返回单词记录(由单词记号(Token)和单
词的属性值组成),或词法错误信息
除以上主要任务外,常伴有如下任务
滤掉空格,跳过注释、换行符,追踪换行标志,
复制出错源程序,宏展开,……
也可能包含访问符号表的操作
编译程序主题中如何组织词法分析程序
可以作为单独的一遍
较常用的方式是由语法分析程序调用
基本任务都是识别单词
词法分析概述
例:Pascal 程序文本
position := initial + rate * 60;
经词法分析程序处理后,转换为下列单词序列
词法单元(对应一个单词记号) 单词属值
标识符 position
赋值算符(:=)
标识符 initial
加算符(+)
标识符 rate
乘算符(*)
整数常量 60
分号(;)
词法分析概述
常用的单词描述工具
扩展巴克斯范式(EBNF)
状态转换图
正规表达式
有限状态自动机
词法分析程序的设计与实现
实例: 某语言词法分析程序的设计
单词类别(种别)的 EBNF 描述
词法分析程序的设计与实现
实例: 某语言词法分析程序的设计
词法单位
(单词符号)
词法分析程序的设计与实现
实例: 某语言词法分析程序的设计
词法规则的状态转换图
词法分析程序的设计与实现
词法分析程序的设计与实现
技术个案
如何区分标识符与保留字
预设一个保留字表,通过查表来确定是否保留字
字符退还
在识别双符号运算符之类的单词时,要注意到可能
需要进行字符退还
例:在读取字符‘’后,若下一字符不是‘=’,则识别
的单词是小于号‘’,但要退还这个非 字符,以
保证下一次仍读到那个非 字符
其他技术个案
词法分析程序的设计与实现
……
词法分析程序自动构造的典型过程
步骤一 使用者用正规表达式作为词法规则的
形式描述,每一类词法单元都对应一个正规表
达式,所有正规表达式以文本方式作为自动构
造工具的输入
词法分析程序的自动构造
词法分析程序自动构造的典型过程
步骤二 自动构造工具将每一个正规表达式转
换成有限自动机的形式,比如使用 Thompson
构造法将正规表达式转换成 -NFA
词法分析程序的自动构造
词法分析程序自动构造的典型过程
步骤三(可选) 增加一个新的开始状态,从该
状态引一条 -转移边到上述每一个 -NFA 的
初态,得到一个新的 -NFA
词法分析程序的自动构造
词法分析程序自动构造的典型过程
步骤四 必要时自动构造工具会将这些 -NFA
确定化,比如使用子集构造法得到 DFA
词法分析程序的自动构造
词法分析程序自动构造的典型过程
步骤五 必要时,自动构造工具会将有限自动
机最小化,得到等价拥有状态数目最少的DFA
词法分析程序的自动构造
词法分析程序自动构造的典行过程
步骤六 若执行过第3步,那么就模拟单个完整
的自动机;否则,自动构造工具按照一定的控
制策略生成词法分析程序中扫描程序的代码,
该扫描程序可以选择对每一类词法单元所对应
的有限自动机依次模拟运行,并从当前输入符
号序列中识别下一个单词,然后返回相应的单
词记录
词法分析程序的自动构造
词法分析程序自动构造的典行过程
可选的正规表达式设计方法 先设计自动机
直接设计正规表达式有时比较困难
例如:假若想要为Java程序中所允许的注释给
出正规表达式,这类注释以”/*”开始,以”*/”
结束,在”/*”和”*/”之间,除了”*/”序列外,可
以出现任意字符。对此类注释,某些同学可能
会认为构造DFA比构造正规表达式更容易,所
以可先构造DFA,然后再转换为正规表达式。
词法分析程序的自动构造
课后作业
针对第 7 页中 EBNF 描述的各单词类别,设计相应的正规表达式。(非书面作业)
针对第
您可能关注的文档
- 精品网VOLTE案例选读.docx
- 精校版文言实词(五)选读.docx
- 精益生产之JIT管理实战选读.docx
- 中国区域地理5-3第3课认识省级区域汇总.ppt
- 井下人员WIFI定位系统及其在煤矿安全生产中的应用选读.docx
- 景区导航需求规格说明书选读.docx
- 警用移动信息网构建及关键技术选读.docx
- 静设备安装监理实施细则选读.docx
- 静止设备安装施工方案选读.docx
- 九年级化学实验探究题专题训练(一)选读.docx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)