编译原理_自动机.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.5.1 正规表达式的定义 定义3.9 字母表?上的正规表达式和正规集递归定义如下: ① a??,a是?上的一个正规表达式,它所表示的正规集为{a}。 ② 空串?是?上的一个正规表达式,它所表示的正规集为{?}。 ③ 空集?是?上的一个正规表达式,它所表示的正规集为?。 ④ 设e1与e2都是?上的正规表达式,它们所表示的正规集分别为 L(e1)与L(e2),则 i) e1?e2也是正规表达式,它所表示的正规集为 L(e1?e2)=L(e1)∪L(e2); ii) e1? e2也是正规表达式,它所表示的正规集为 L(e1? e2)=L(e1)L(e2); iii) (e1)*也是正规表达式,它所表示的正规表达式为 L((e1)*)=(L(e1))*。 举例: 3.5.1 正规表达式的定义 例:设有字母表 ∑={a,b},根据正规式与正规集的定义,有以下的正规式和正规集 正规式 正规集 a {a} a∣b {a,b} ab {ab} ( a∣b)( a∣b) {aa,ab,ba,bb} a* {ε,a,aa,aaa,…,任意个a的串}(a∣b)* {ε,a,b,aa,ab,ba,bb,…所有 a,b组成的串} (a︱b) *(aa︱bb) (a︱b) * ∑*上所有含两个连续的a 或两个连续的b组成的串 3.5.1 正规表达式的定义 例:Σ={d,·,e,+,-} 则Σ上的正规式 d*(·dd*∣ε)(e(+∣- ∣ε)dd*∣ε)表示的是实数。其中d为0~9中的数字。比如:2,12.59,3.6e2和471.88e-1等等都是该正规集所表示集合中的元素。 例:Σ={字母,数字}上的正规式e1=字母(字母︱数字)*表示的是所有标识符的集合,或者用l代表字母,d代表数字,则Σ={l,d},则e1=l(l︱d)*,e2=dd*则定义了无符号整数。 3.5.1 正规表达式的定义 例:设Σ={a,b,c},则aa*bb*cc*是Σ上的一个正规式,它所表示的正规集 L={abc,aabc,abbc,abcc,aaabc,...}={ambncl∣m,n,l≥1} 例:设程序设计语言字母表是键盘字符集合,则程序设计语言部分单词符号可用如下正规式定义: 关键字 if |else |while |do 标识符 l(l|d)* l代表字母,d代表数字 整常数 dd* 关系运算符 |=||=| 3.5.1 正规表达式的等价性 定义3.10 设e1与e2是?上的两个正规表达式,若L(e1)=L(e2),则称e1与e2等价,记为e1=e2,如 a?(ba)*=(ba)*?a 3.5.1 正规表达式的运算性质 定理3.1 设e1、e2和e3都是?上的正规表达式,则 ① e1?e2= e2?e1 (交换律) ② (e1 e2) e3=e1(e2 e3), (e1?e2)?e3= e1?(e2?e3) (结合律) ③ e1(e2?e3)= e1 e2?e1 e3, (e1?e2) e3= e1 e3? e2 e3 (分配律) ④ ? e1= e1?= e1 ⑤ (?)*=? (空集的闭包是空串) ⑥ ?e1=e1?=? ⑦ e1*= e1|e1* ⑧ (e1*)*=e1* ⑨ e1|?=e1 3.5.2 正规表达式的文法描述 正规表达式是由下面的CFG GR=(N,?,P,R)描述的。其中, N={R,C,L} ?={|,(,),*,a, ?} 产生式集合P为: R→R|C (选择) R→C C→CL (连结) C→L L→(R) (括号) L→R* (闭包) L→a (正规语言中的任何符号) L→? (空串) 该文法描述了操作符:连结,选择和闭包的优先级以及形成正规表达式的结构规则。 运算符的优先级从高到低:闭包、连结、选择 3.5.3正规表达式与FSA的对应性 正规表达式和FSA是定义语言(符号串集)的两种不同形式。同一个语言,既可用FSA描述,也可用正规表达式描述。 3.5.4正规表达式到NDFSA的转换 对

文档评论(0)

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

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

1亿VIP精品文档

相关文档