程序设计语言与编译ppt课件_4.2.1 形式语言与自动机理论.pptxVIP

程序设计语言与编译ppt课件_4.2.1 形式语言与自动机理论.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文档。上传文档
查看更多

第四章程序语言的设计;第四章程序语言的设计;形式语言与自动机理论研究计算的数学模型的定义和性质,这些模型在计算机科学的若干应用领域中起着重要作用,其应用范围已被扩展到生物工程、自动控制系统、图像处理与模式识别等许多领域。;形式语言和自动机的理论来源于:

(1)Chomsky对自然语言的研究;

(2)ALGOL60语言的语法描述方式;

(3)Turing、Kleene、Neumann、Huffman等对自动机的研究;

(4)Chomsky的整合。;语言是人们交流思想的工具,人类在长期的历史发展过程中,为了交流思想、表达感情和交换信息,逐步形成了语言——自然语言。

自然语言的本质:规则的组合

;任意字符的集合是一个字母表。如:

26个英文字母表;

10个阿拉伯数字字母表;

24个希腊字母表;

二进制字母表。

字母表有非空性、有穷性、单一性,使用?表示字母表。

;字符串:

字母表中的字母按照某种顺序排列成的字符序列(允许有重复的字母)。

用ε代表空串(长度为0的串)。

语言:

任意多个字符串的集合。

;(1){ε}代表仅含有空串的集合。

(2)用Ф代表空集,表示一个元素都不包含的集合。

(3)用?代表字母表。

;(4)用αβ代表两个字符串α与β的连接(并置)

若α=a1a2a3…an,β=b1b2b3…bm

则αβ=a1a2a3…anb1b2b3…bm

特别:αε=εα=α

用αn代表α的n次连接(n次幂)

α0=ε

αn=αn-1α,其中n0

;(5)用AB代表集合A与B的连接

A = { a1,a2,a3,…,an}

B = { b1,b2,b3,…,bm}

AB = { a1b1,a1b2,a1b3,…,a1bm,

a2b1,a2b2,a2b3,…,a2bm,

a3b1,a3b2,a3b3,…,a3bm,

anb1,anb2,anb3,…,anbm}

;注意:AФ=ФA=Ф

A{ε}={ε}A=A

一般,AB与BA是不相等的

;(6)An代表集合A的n次连接(n次幂)

A的n次幂定义为:

1.A0={ε}

2.An=An-1An?1;(7)A*代表A上所有字符串的集合

即表示集合A中的所有字符串进行任意次连接而形成的串的集合。

A*称为集合A的闭包(克林闭包)

A*=A0∪A1∪A2∪…∪An

;例子:A={0,1}

A0={ε}

即长度为0的0和1组成的串的集合

A1=A={0,1}

即长度为1的0和1组成的串的集合;A2=AA={00,01,10,11}

即长度为2的0和1组???的串集合

A3 =A2A ={000,001,010,011,100,101,110,111}

即长度为3的0和1组成的串的集合

A* =A0∪A1∪A2∪…∪An

={0和1组成的所有的串}={w|w是0和1组成的串}

;问题:

集合A={a},则A*=?;(8)A+称为A的正闭包

A+=A∪A2∪A3∪…∪An;(9)给定字母表?,则?*的任意子集L称为字母表?上的一个语言。

本质上,语言L是字母表?上的字符串形成的集合。

语言可分为有穷语言与无穷语言。

(10)设?是一个字母表,?L??*,

?x?L,x称为L的一个句子。;设?1,?2是两个字母表

L1??1*,L2??2*,

语言L1与L2的乘积是一个语言:

L1L2={xy|x?L1,y?L2}

该语言是字母表?1∪?2上的语言。;字母表{0,1}上的一些语言:

{00,11}

{0,1}*

{1}{0,1}*

{0}{0,1}*{1}

{0,1}{0,1}*

{0,1}{0,1}*{0,1}

{0,1}{0,1}{0,1}*

{0,1}*{1}{0,1}*;L={0n1n|n?1}

L={0n1m0k|n,m,k?1}

L={0n1m0k|n,m,k?0}

;?={0,1},请给出以下语言的形式表示:

所有以0开头,以1结尾的串的语言。

所有以11开头,11结尾的串的语言。

所有长度为偶数的串的语言。

所有长度为奇数的串的语言。

所有包含子串01011的串的语言。

所有的第10个字符是0的串的语言。

;形式语言和自动机理论中的语言是一个宽泛的概念(不同于传统语言)。

一个字母表上的语言就是该字母表的任意字符串的集合。

语言中的字符串称为该语言的句子。;语言的定义可以从两个方面进行:

(1)从产生语言的角度;

(2)

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档