哈工大编译原理3-1.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 词法分析 3?2 词法分析器的手工构造 为了构造词法分析器,要研究构词法,每种词类的结构模式以及识别它的数学模型——有穷自动机。它的模拟程序可以作为词法分析器的控制程序。 3?2 ?1确定的有限自动机(DFA) 3?2 ?2构造识别单词的DFA 3?2 ?3 编写词法分析程序 * * 编译器的各个阶段: 编译器是分 阶段执行的。 每个阶段将源程序从一种表示转换成另一种表示 源程序 词法分析器 错 误 处 理 器 符 号 管 理 表 语法分析器 语义分析器 中间代码生成器 代码优化器 代码生成器 编译的各个阶段 3 . 2 词法分析器的手工构造: 用DFA 能识别 3 . 3词法分析程序自动构造工具LEX简介 3. 1 词法分析程序的设计: 词法分析器的功能,输出,把它组织成单独程序 = 8 0 ; 0 1 3 4 2 5 6 e n i L 字母 字母 字母 字母 数字 数字 数字 = = ; ; 0 1 2 4 5 6 3 L i n e = 8 0 ; ? id(25) , ‘Line’? ? =( 36), ?? ? ? num(27), ‘80’? ? ;(45), ?? ? 数字 字母 字母 1 1 = = 0 0 0 3 ; ; 1 输入 输出 有穷控制器 单词的词类和属性 (词类符号, 单词的属性) 3.1 词法分析程序的设计 二、 扫描器的任务 一、词法分析程序的功能 源程序 单词序列 词法分析器 1、组织源程序的输入 2、转换成机内表示形式 3、删除注释行、空格及无用符号 4、查填符号表 5、检查词法错误 12 , 25 , 符号表入口 39 , 25 ,符号表入口 20 , 25 ,符号表入口 36 , 26 ,常数表入口 8 , 25 ,符号表入口 36 , 26 ,常数表入口 if i>j then i:=0 else j:=1 词法分析 if I > J Then I = 0 else j = 1 三、词类和属性 2.标识符:用来表示各种名字 3.字面常数:256,3 .14,true,‘abc’ 4. 运算符:如,+、-、*、/ 等等 5.分界符:如逗号,分号,冒号等 程序语言单词的分类: 1.关键字(保留字或基本字):begin,end 界符和运算符: 词法分析器的输出: (词类编码,单词自身的属性值) 关键字可分成一类,也可以一个关键字分成一类。 常数可统归一类,也可按类型(整型、实型、布尔型等),每个类型的常数划分成一类。 所有的标识符分为一类。 词类编码原则: 一字一码。 一类型一码。 一类一码。 一字一码。 表3.1 单词词类编码 对于关键字、界符、运算符来说,它们的词类编码就可以表示其完整的信息,故对于这类单词,其单词自身的属性值通常为空 而对于标识符,词类编码所反映的信息不够充分,标识符的具体特性还要通过单词自身的属性进行互相区分。标识符的单词自身的属性常用其在符号表中的入口指针来表示 对于常数, 其单词自身的属性常用其在常数表中的入口指针来表示 以语句子a=b+c*d 为例,假设按表3.1为单词编码,词法分析后的结果为: Token字 符号表 a = b + c * d a 25 25, 36, -------- 25, 32, -------- 25, B 25 25, C 25 D 25 31, -------- 四、 词法分析的设计形式 (1)设计成一个独立程序,完成词法分析的任务,结果以文件的形式组织,做为语法分析的输入 源程序 词法 分析 符号表 TOKEN字 错误信息 词法 分析 语法分析 语义分析和 中间代码生成 源程序 中间代码 符 号 表 管 理 错 误 的 诊 查 处 理 (2)作为语法分析和语义分析

文档评论(0)

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

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

1亿VIP精品文档

相关文档