第3章 词法分析-3-正规式.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 用状态转换图为正则语言构造正则文法 从上面状态转换图,可得到相应的正则文法: G[Z]: Z ? Cb C ? Bb|b B ? Ab A ? Ba|a 例如:正则语言{(ab)nb2|n≥0} 基于其句子的一般形式,为其构造状态转换图: S A B C Z a b b b b a * * 转换系统 定义:转换系统是具有下列三个特征的状态转换图,即 1) 开始状态S和终止状态Z 唯一; 2) 无弧进入S,也无弧自Z射出; 3)可能存在标记为空串(ε)的弧。 转换系统与状态转换图的区别: ε弧 S S1 S2 Z ε ε A Z2 Z1 ε ε 习题 1.构造正规式对应的NFA R=(a*|b*)b(ba)* R=b*abb*(abb*)* 2.求文法对应的正规式 S?0B B ?0B|1S|0 * * 习题 3.写出下面DFA的右线性文法和正规式 4.设,请写出不以a开头,但是以aa结尾的字符串集合的正规式,并构造NFA、DFA。 * * * * 习题 * * * * * 中南大学软件学院 陈志刚 第三章 词法分析 中南大学软件学院 陈志刚 第三章 词法分析 3.1 词法分析概述 3.2 正规文法和状态转换图 3.3 有限自动机 3.4 正规表达式和正规集 3.5 词法分析器的实现 3.4 正规表达式与正规集 到目前为止,我们已了解了对于任意3型语言L(G),存在DFA M 使L(M)=L(G),反之,任意的M,存在G,使L(G)=L(M).这称为描述语言的等价性. 本节将引入正规表达式的概念,它们可用于描述3型语言的特征,特别是对自动生成词法分析程序而言,它是非常有用的工具。 所谓正规表达式就是用特定的运算符及运算对象按某种规则构造的表达式,用于描述给定3型语言的所有句子。 * * * * 基本概念 1.字母表Σ: 元素的非空有限集合。如Σ={‘A’, ‘B’, ‘O’} 2.字符: 字母表Σ的一个元素称为一个字符(符号) 3. Σ上的符号串: Σ上字符的有穷序列;例:Σ={a,b,c} 4.空串ε: 不含任何字符的字 5.符号串的长度: |α| 6.Σ上符号串的全体: Σ* 7.符号串的连接: 字α与字β的连接记为αβ 3.4 正规式与正规集 * * 基本概念 8.符号串的方幂:符号串α的n次连接称为α的n次方幂,记为 ,特别地 =ε 9.符号串的集合A与B的乘积: 记作 ,其中 10. Σ*子集的方幂: Ao={ε},A1=A, … , 11.Σ*子集的正则闭包: 12.Σ*子集的闭包: 3.4 正规式与正规集 3.4.1正规表达式及正规集的定义 定义 设?是一字母表,则?上的正规表达式(正则表达式,正规式)及其表示的正规集可递归定义如下: (1) ?是一~, 相应的正规集为?; (2) ?是一~, 相应的正规集为{?}; (3) ?a??,a 是一~, 相应的正规集为{a}; (4) 设r,s是~, 且它们所表示的正规集为Lr,Ls,则 1. (r) ?(s)是~, 相应的正规集为Lr?Ls; 2. (r)|(s)是~, 相应的正规集为Lr? Ls; 3. (r)*是~, 相应的正规集为Lr* 有限地使用上面的规则(4),所得的表达式均是~. 优先级从高到低依次为 *, ? , | * * * * 正规式与正规集 优先级递增: |(或),·(直接),*,(正规式) ∪, ∩, *’, (正规集) 例1. Σ={0, 1},则正规式有0, 1, ε, 1*, …,正规集有{0}, {1}, {ε}, φ, {1}*, … 若两个正规式所表示的正规集相同,则认为二者等价才是Σ上的正规集 正规式与正规集的例子 给定正规式,它唯一确定一正规集;反之不真.即一个正规集可由多个 不同的正规式表示. 若二正规式描述同一正规集,则称二式等价(相等) 正规式间的基本等价关系见下页. * * A1. r|s=s|r A2. r|r=r A3. r|?=r A4.(r|s)|t=r|(s|t) A5. (rs)t=r(st) A6. r(s|t)=rs|rt A7. (s|t)r=sr|st A8. r?=?r=? A9. r?=?r=r A10. r*=(?|r)*=?|rr* * * 3.4.2 由正规文法构造相应的正规式 方法: 将G视为定义所含非终结符为变量的联立方程组,通过解方程组求得相应的正规式. 例 S?aS|bA|b A?aS

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档