正规文法和正规式的等价性课件.pptxVIP

正规文法和正规式的等价性课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  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文档。上传文档
查看更多
编译原理 第一章 编译程序概述 第二章 PL/0编译程序的实现 第三章 文法和语言 第四章 词法分析 第五章 自顶向下语法分析方法 第六章 自底向上优先分析方法 第七章 LR分析方法 第八章 语法制导翻译和中间代码生成 第九章 符号表 第一○章 代码优化 第一一章 代码生成 1 词法分析 词法分析是编译过程的第一个阶段。 主要任务:从左到右逐个字符地对源程序进行 扫描,产生一个个单词序列,用以语法分析。 词法分析的基本思路: •将单词符号的语法用有效的工具描述; •基于该描述建立单词的识别机制; •设计和实现词法分析程序 2 • 单词的描述技术 •正规文法 •正规式 • 单词的识别机制 •确定有穷自动机 •不确定有穷自动机 •词法分析程序的自动构造原理 •正规式和有穷自动机的等价性 •词法分析程序的自动构造工具 3 单词的描述工具 某种程序设计语言中的所有单词构成一种语言。该语言的语法都 能用正规文法表示。正规文法是描述单词的一种工具。 1、正规文法(回顾) 文法G=(VN,VT,P,S),P中每一规则有A→aB或A→a ,A,B VN, a VT* ,称G(S)是正规文法。 标识符 → l | l 字母数字 字母数字 → l |d| l字母数字| d 字母数字 无符号整数 → d|d无符号整数 l表示a-z中的任何英文字母, d表示0-9中的任何数字 由正规文法产生的语言称为正规集 4 2、正规式(正则表达式) 是表示正规集的工具,也是用以描述单词符号的方 便工具。 妇正规式与正规集的定义: 设字母表为Σ,辅助字母表Σ={0 ,c , |, · ,*, (, ) } ; ü c和0都是Σ上的正规式,表示的正规集分别为{c}和0; ü任何a= Σ,a是Σ上的一个正规式,表示的正规集为 {a}; 5 ü假定e1和e2都是Σ上的正规式,它们所表示 的正规集分别为L(e1)和L(e2),则 (e1),e1|e2,e1 ·e2和e1*也都是正规式,所 表示的正规集分别为 L(e1),L(e1)∪L(e2), L(e1)L(e2)和(L(e1))*。 ü 仅由有限次使用上述三步骤而定义的表达 式才是Σ上的正规式,仅由这些正规式所表 示的集合才是Σ上的正规集。 例: ={a,b}, 上的正规式和相应的正 规集为: 6 • b* • ------------------- • (a|b)* • a*|b* • aba* . (a|b)*(aa|bb) (a|b)* • ----------- • (a) • (b) • a|b • ab • a* 一个正规式可以表示若干个符号串, 其正规集就是这些符号串的集合 • 0 • a • b 7 • a|b {a,b} • ab {ab} • a* { ,a,aa,aaa,aaaa,….} • b* { ,b,bb,bbb,bbbb,….} • ------------------- • (a|b)* a和b组成的所有串 • a*|b* { ,a,aa,aaa,aaaa,….,b,bb,bbb,bbbb,….} • aba* 以ab开头后接若干个(包括0个)a组成的串 . (a|b)*(aa|bb) (a|b)* *上所有含有两个相继的a或两个相继的b组8成 的串 一个正规式可以表示若干个符号串, 其正规集就是这些符号串的集合 • ----------- • (a) {a} • (b) {b} • • 0 • a • b { } 0 {a} {b} 例:令 ={d,. ,e,+,-},则 上的正规式 d* (.dd* | )(e(+|- | )dd* | )表示的是所有无符号数。 其中d为0~9中的数字。 比如: 2,12.59,3.6e2,471.88e-1等都是正规式 表示集合中的元素。 设r ,s ,t为正规式,正规式服从代数规律有: 1 、r|s=s|r 交换律 2 、r|(s|t)=(r|s)|t 结合律 3 、(rs)t=r(st) 结合律 9 4. r(s|t) = rs|rt 分配律 (s|t)r = sr|tr 分配律 5. cr=r 零一律 程序设计语言中的单词既能用 rc=r 零一律 正规文法表示,又能用正规式 正规文法: 正规式? 标识符 →l|l 字母数字 字母数字 → l|d|l字母数 字| d 字母数字 无符号整数 → d|d无符号 整数 l表示a-z中的任何英文字母, d

文档评论(0)

157****4327 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档