- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标识符→字母 | 标识符字母 | 标识符数字) 无符号整数→数字 | 无符号整数数字 单界符→+ | * | |, | ; 双界符→= 标识符: l(l|d)* 无符号整数: dd* 单界符: + | * | |, | ; 双界符: = 3.2 正规文法与正规式 正规式:单词的词型公式 正规集:符合词型公式的单词的集合,是符号集 运算符:从高到低的优先次序:* ? | 正规式的定义是一种递归定义 正规式等价 正规式R和S,如果L(R)=L(S),则R=S 【例】 ∵ L(b(ab)*)=L((ba)*b), ∴ b(ab)*=(ba)*b ∵ L((a|b)*)=L(((a)*(b)*)*), ∴ (a|b)*=((a)*(b)*)* 3.2 正规文法与正规式 正规式和正规集的说明 (1) 交换律: R∣S = S∣R (2) 结合律: R∣(S∣T) = (R∣S)∣T R(ST) = (RS)T (3) 分配律: R∣(S∣T) = RS∣RT (R∣S)T = RT∣ST (4) 同一律: εR = Rε = R (5) 抽取律: r | r = r 3.2 正规文法与正规式 正规式的性质 【例】令Σ={a,b},设R=a(a∣b)* 是Σ上的正规式, 试求其表示的正规集。 【解答】L(R)=L(a(a∣b)*)=L(a)L((a∣b)*) =L(a)(L(a∣b))*=L(a)(L(a)∪L(b))* ={a}({a}∪{b})*={a}{a,b}* ={a}{ε, a, b, aa, ab, ba, bb, aaa, …} ={a, aa, ab, aaa, aab, aba, abb, aaaa, …} 3.2 正规文法与正规式 【解答】 (1) (a∣b)*对应的正规集:a、b可任意交替出现,如abbaaaba… a*∣b*对应的正规集:只可出现任意个a或者任意个b (2) (ab)*对应的正规集:任意个ab对,即ababab…; a*b*对应的正规集:先出现任意个a后接任意个b,即a…ab…b; (3) (a∣b)*对应的正规集:a、b可任意交替出现,如aababbb; (a*b*)*可采用如下构造方法得到字符串aababbb: (a*b*)2=(a*b*)(a*b*)=(a2b1)(a1b3)=aababbb 反之,对(a*b*)*产生的任意字也可由(a∣b)*得到,即两者是等价的。 【例】 判断下述正规式之间是否等价: (1) (a∣b)*与a*∣b* (2) (ab)*与a*b* (3) (a∣b)*与(a*b*)* 3.2 正规文法与正规式 不等价 不等价 等价 第三章 词法分析 S.P O.P 语义分析及生成中间代码程序 代码生成程序 代码优化程序 语法分析程序 词法分析程序 错 误 处 理 符 号 表 管 理 词法分析 要求明确此阶段的任务; 理解单词分类和构词规则; 会使用单词的描述和识别机制; 掌握正规文法、状态图、自动机、正规式和正规集的基本概念和它们之间的关系; 掌握词法分析程序的实现方法。 词法分析 词法分析 词法分析程序概述 正规文法与正规式 有穷自动机 正规式与有穷自动机的等价性 正规文法与有穷自动机的等价性 一个简单的词法分析器示例 (1)分析和识别单词及属性, 包括识别语言的关键字、标识符、常数、运算符等; (2)跳过各种分隔符,如空格,回车,制表符等; (3)删除注释; (4)进行词法检查,报告所发现的错误; (5)建立符号表。 3.1 词法分析程序概述 词法分析的任务 main( )/*ADD*/ { int x=10,y=20,sum; sum=x+y; } main、(、)、{、int、x、=、10、,、y、=、20、,、sum、;、sum、=、x、+、y、;、} 词法分析 3.1 词法分析程序概述 词法分析的基本思路 将单词符号的语法用有效的工具描述; 基于该描述建立单词的识别机制; 设计和实现词法分析程序。 3.1 词法分析程序概述 词法分析程序的工作方式 相对独立方式(单遍):把词法分析程序作为语法分析程序的一个独立子程序。语法分析程序需要新符号时调用这个子程序。 完全独立方式(多遍):词法分析程序作为单独一趟来实现。词法分析程序读入整个源程序,它的输出作为语法分析程序的输入。 3.1 词法分析程序概述 2.词法分析单独作为一遍 S.P.(字符
文档评论(0)