slide03编译原理实验导引(一)汇总.pptx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 描述的各单词类别,设计相应的正规表达式。(非书面作业) 针对第

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档