第2章形式语言概述.pptVIP

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 形式语言概述 本章学习目标 形式语言由Chomsky于1956年提出,主要讨论语言和文法的数学机制以及语言和文法的分类。形式语言 的形成和发展,对编译原理和技术产生了重要的影响。本章主要内容是: 文法和语言的形式定义 文法的分类 句型的分析和语法树 字母表 字母表 是元素的非空有穷集合,字母表中的元素称为符号,因此字母表也称为符号表。高级语言如C语言的字母表是由字母、数字、特殊符号和一些专用符号构成。 字母表可以用?表示 例: ?={a,b}, ?={0,1}, ?={0,1,2,3,4,5,6,7,8,9}, ∑={a,b,c,…z,if,then,else,main,1,2,3,4,…,9,0,=,==,,,;(,)} 2.1.2 符号串 (1)符号 语言中最基本的不可再分的单位 (2)符号串 符号串是由字母表中的符号所组成的有穷序列。符号串由小写x,y,z表示 例 :某个字母表∑={a,b,c,…z,if,then,else,main,1,2,3,4,…,9,0,=,==,,,;},则建立在∑上的符号串有:if (2+3==5) then a=6 else b=8; 空串是不含任何符号的串,记作ε (3)符号串的长度 符号串x中所包含的符号的个数称为符号串x的长度,记为|x| 。 例:字母表{0,1},则|010110|=6。空串的长度为0。 (4)子字符串 设有非空符号串u=xvy,其中x、v、y是符号串,且v≠ε,则称v为符号串u的子符号串。 例:设字母表Σ={a,b,c,d,+,-,*,/,(,)}上有符号串x=a+b*(c+d),则a、a+b*与(c+d)等都是x的子符号串,且其长度分别为∣a∣=1、∣a+b*∣=4与∣(c+d)∣=5 (5)符号串的头和尾 如果z=xy是一个符号串,则x是z的头,而y是z的尾。如果y非空,则x是z的固有头,又称为真前缀;若x非空,则y是z的固有尾,又称为真后缀。 例 假设字母表?={a,b,c}上的符号串z=abc,则ε、a、ab、abc都是z的头,且除abc外都是z的固有头;ε、c、bc、abc都是z 的尾,且除abc外都是z的固有尾。 若只对符号串的头部感兴趣,记做z=x…。若只对尾部感兴趣,则记为z=…x。 符号串的运算 连接(乘积)运算 设 x与y是同一个字母表上的两个符号串,把y的各个符号相继写在x的符号后所得到的符号串称为x与y的连接,记为xy。 例:设在字母表{a,b,c}上有符号串 x=ab与y=cba,则z=xy=abcba。这里∣x∣=2, ∣y∣=3, ∣z∣=5。 对于字母表上的任何符号串x,都有εx=xε=x 注:xy!=yx 符号串的方幂 设x是某个字母表上的符号串,把x自身连接n次,即z=xx…x(n个x),称为符号串x的n次方幂,记为z=xn。 例: x=ab x3=ababab 2.1.3 符号串集合 符号串集合 集合A中一切元素都是某字母表∑上的符号串,则称A是该字母表∑上的符号串的集合。 字母表上的符号串的集合通常用大写字母来A、B、C、…表示。 例: 设某个字母表{a,b,c,d}, 符号串集合A,B A={a,bc}, B={abc,cd,ab} 符号串集合的运算 乘积 两个符号串集合A和B的乘积AB定义为AB={xy∣x∈A ,且y∈B} 例: 设A={a,b},B={c,d,e} 则AB={ac,ad,ae,bc,bd,be} 对于任何空集合Φ,都有ΦA=AΦ=A 方幂 类似于符号串的方幂,可以定义符号串集合的方幂,特别地定义字母表A的方幂为: A0={ε},A1=A,An=An-1A (n0) 字母表的闭包与正闭包的运算 闭包 设有字母表A,A的闭包定义如下: A*=A0∪A1 ∪ A2 ∪…∪An∪…,其中,An (n=0,1,2,3,…)中所有的符号串的长度为n,因此字母表A的闭包 A*为字母表上一切长度为n的符号串所组成的集合。 注:闭包可以看作由A上符号组成的所有串的集合(包括空串) 正闭包 如果不允许包含空串ε,则得到字母表A的正闭包。 A的正闭包 A+=A1 ∪ A2 ∪…∪An∪… 注:正闭包可以看作由A上符号组成的所有串的集合(不包括空串) 语言 字母表上按照某种规则形成的某个符号串的集合,所以,语言是该字母表上正闭包的子集 例:设字母表Σ={a,b,c},依次写出长度为1、2、3…的符号串,可得到 Σ的正闭包 Σ+ :Σ+={a,b,c,aa,ab,ac,bb,bc,aaa,aab,aac,abb,abc,baa,…} 在Σ+上添入空串ε即得Σ*。 2.2 文法的定义及其分类 什

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档