第3章词法分析编译原理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章词法分析编译原理

第三章 词法分析 3.1 词法分析程序的功能 3.2 单词符号及输出单词的形式 3.3 语言单词符号的两种定义方式 3.4 正规式与有穷自动机 3.1 词法分析程序的功能 词法分析(lexical analysis) 逐个读入源程序字符并按照构词规则切分成一系列单词。 单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。 词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。 3.2 单词符号及输出单词的形式 一、程序语言单词的分类: 1.关键字(保留字或基本字):begin,end 2.标识符:用来表示各种名字 3.常数:如整型常数256,实型常数3 .14, 布尔型常数true,‘abc’ 4. 运算符:如,+、-、*、/ 等等 5.分界符:如逗号,分号,冒号,括号等 二、词法分析程序输出单词的形式 词法分析器的输出:(单词种别,单词自身的值) 1、单词种别 含义:单词的种类,提供给语法分析程序使用; 设置目的:最大限度地把单词区别开来 分类法:一类一种/一字一种 2、单词自身的值 单词自身的值提供给语义分析程序使用; 描述方法:对于一类一种/一字一种区别对待。 二、词法分析程序输出单词的形式 设计原则: 单词种别:具体的分类设计以方便语法分析程序使用为原则。关键字可分成一类,也可以一个关键字分成一类。常数可统归一类,也可按类型(整型、实型、布尔型等),每个类型的常数划分成一类。 单词自身的值:所提供的内容由词法分析和语义分析的任务划分决定。 三、状态转换图 状态转换图是一张有限方向图,结点代表状态,状态间用“?” 连接。 在整个状态转换图中,只有一个初始状态结点,可有若干终止状态(也可能没有,用双园圈表示) 。 例: 标识符 = 字母(字母数字)* 的状态转换图形式如下: 2.3 语言单词符号的两种定义方式 正规式: 简洁清晰。如: a(a|b)* 正规文法: 文法G=(VN,VT,P,S),P中每一产生式的形式都为:A→aB或A→a,其中A∈VN ,B∈VN ,a∈VT。 易于识别,如: S → l|Sl|Sd 3.3.1 正规式与正规集 正规式:(Def1) 设A是非空的有限字母表,A={ai| i=1,2,……n},则: (1) ?,?和ai (i=1,2,……n)都是正规式。 (2)若?、?是正规式,则?|?、 ??? 、?*、 ? *也是正规式。 (3)正规式只能通过有限次使用1,2规则获得。 3.3.1正规式与正规集 正规式与正规集:(Def2) 设有字母表Σ={a1,a2 ,…,an},在Σ上的正规式和它所表示的正规集可用如下规则来定义: (1) Φ是Σ上的正规式,它所表示的正规集是Φ,即空集{}。 (2) ?是Σ上的正规式,它所表示的正规集仅含一空符号串,即{?}。 (3)ai是Σ上的一个正规式,它所表示的正规集是单个符号是所组成,即{ai}。 见课本定义3.1 (4)如果e1和e2是Σ上的正规式,它们所表示的正规集分别为L(e1)和L(e2),则: ① e1||e2 是Σ上的正规式,它所表示的正规集为L(e1 |e2) =L(e1) ?L(e2) ② e1e2是Σ上的正规式,它所表示的正规集为L(e1 e2) =L(e1)L(e2) ③ ( e1 )*是Σ上的正规式,它所表示的正规集为L((e1)*) =(L(e1))* 注: 1)利用正规集相同,可用来证明相应正规式等价。 2)其中的“?”读为“或”(也有使用“+”代替 “?” 的);“? ”读为“连接”;“?”读为“闭包”(即,任意有限次的自重复连接)。 在不致混淆时,括号可省去,但规定算符的优先顺序为“?”、“? ”、“?” 。连接符“? ”一般可省略不写。“?”、“? ”和“?” 都是左结合的。 两个正规式等价 若两个正规式所表示的正规集相同,则称之为等价; U、V为正规式,若L(U)=L(V),则称U、V等价,记为U=V; 例如: e1= (a?b), e2 = b?a 又如: b(ab)? = (ba)?b (a?b)? = (a??b?)? 正规式的运算律 设r,s,t为正规式,正规式服从的代数规律有: 1) r?s=s?r “或”服从交换律 2) r?(s?t)=

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档