第3章词法分析解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章词法分析解析

* 1 while {return (1,null)} 2 do {return (2,null)} 3 if {return (3,null)} 4 else {return (4,null)} 5 switch {return (5,null)} 6 { {return (6,null)} 7 } {return (7,null)} 8 ( {return (8,null)} 9 ) {return (9,null)} 10 + {return (10,null)} 11 ? {return (11,null)} * 12 * {return (12,null)} 13 / {return (13,null)} 14 = {return (14,null)} 15 ; {return (15,null)} 16 letter (letter∣digit)* {if(keyword (id)==0) {return (16,null); return (id) }; else return (keyword (id)) } 17 digit (digit)* {val=int (id); return (17, null); return (val)} * 18(letter∣digit∣{∣}∣(∣)∣+∣?∣*∣/∣=∣;)* {return (18,null); inslit (id); return (pointer,lenth)} 该LEX源程序中用户子程序为空;其中识别规则{A18}语句中调用过程“inslit (id)”是将字符串常量id存放到字符表中,“pointer”中存放该串的起始位置,“lenth”存放该串的长度。 * LEX可以用两种方式来使用:一种是将LEX作为一个单独的工具,用以生成所需的识别程序;另一种是将LEX和语法分析器自动生成工具(如YACC)结合起来使用,以生成一个编译程序的扫描器和语法分析器。 * 小结 词法分析的基本概念 正规式与正规文法 有穷自动机及状态图表示 NFA的确定化 DFA的化简 正规式、正规文法与FA之间的转换 词法分析程序设计 * 主线: 两个工具:正规文法和正规式 一个识别系统:有穷自动机 词法分析程序的设计 核心内容 * 自动机、正则文法、正则表达式 的相互转化 正则文法 NFA 正则表达式 1 2 3 4 5 6 DFA 最小化 * 主要内容 词法分析的功能 单词的种类及词法分析程序的输出形式 正则文法和状态图★★★ 正则表达式与有穷自动机★★★ 词法分析程序 * 作业 1、书上习题1 2、书上习题3(提示共4个状态) 3、书上习题8 * 4、已知有限自动机如图 (1)以上状态转换图表示的语言有什么特征? (2)写出其正规式与正规文法. (3)构造识别该语言的有限自动机DFA. 5、请构造与正则式R=(a*b)*ba(a|b)*    等价的状态最少的DFA 6、试构造与正则式R=(a*|b*)b(ba)*等价 的状态最少的DFA。 * 课外阅读:一个简单的词法分析器示例 1 C语言子集的单词符号表示 一个非常重要的事实是:大多数程序语言的单词符号都可以用状态转换图予以识别。作为一个综合例子,我们来构造一个C语言子集的简单词法分析器。表1列出了这个C语言子集的所有单词符号以及它们的种别编码和内码值。由于直接使用整数编码不利于记忆,故该例中用一些特殊符号来表示种别编码。 * 表1 C语言子集的单词

文档评论(0)

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

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

1亿VIP精品文档

相关文档