- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第2章课件
第二章 形式语言与自动机理论基础; 自然语言(Natural Language)是人类在社会生活中发展起来的,用于日常相互交流的符号系统。
形式语言(Formal Language)是为了特定应用而设计的人工语言,形式语言是用精确的数学或机器可处理的公式定义的语言,公式由人们公认的数学和逻辑符号组成。
;语法和语义
一个程序设计语言是一个记号系统,它的完整定义包括语法和语义两个方面。
语法(Grammar)是一组规则,用它可以产生一个与其所包含的符号含义无关的合法程序,语法是语言的形式。
语义(Semantic )是语言的内容,以语法为媒介来说明语义是语言的实质。
本章目的形式语言的基础知识。 ; 2.1 基本概念
1.字母表(alphabet )
字母表是元素的非空有穷集合,字母表中的一个元素称为该字母表的一个字母(letter),也可叫做符号(symbol)或者字符(character)。
注意:字母表具有非空性和有穷性。
字母表有时也称为符号表,通常用∑表示。
;2.符号串
由字母表中的符号组成的任何有穷序列称为字母表上的符号串。符号串还可以称为“字符串”、“字”或“句子”,一般用?,?,….,x,y,z,…表示。
?或?表示空串。对任一字母表∑,都有?(或?)是∑上的符号串。
空串集{?}不同于空集? 。
∑ = {a,b, c,d};3.符号串长度
符号串中字符的个数。 用|?|表示符号串?的长度。
|?|=0;
只有当两个符号串长度相等且相应位置的符号均相同时,这两个符号串才是相等的。 ;4.符号串连接
设?和? 均是字母表∑上的符号串, ?和?的连接是把?的所有符号顺次地接在?的所有符号之后所得到的符号串。记为: ??。
例如: 设 ? = abc , ? = de ,则?和?的连接:
?? = abcde
|??|=|?|+|?|。
由于?是不包含任何符号的字符串,特别有:
?? = ?? = ?
连接运算不满足交换律。
;5.符号串的方幂
设x是字母表∑上的符号串,把x自身连接n次得到的符号串z, 即z = xx…xx (n个x),称作符号串x的n次幂,记作 z = xn 。根据定义有:
x0 = ?
x1 = x
x2 = xx
x3 = x2x = xx2 = xxx
……
xn = xn-1x = xxn-1 = xx…xx (n个x)
例2.1 设x = 001,则有: x0 = ε
x1 = 001
x2 = 001001
x3 = 001001001 ;6.符号串前缀和后缀
设 x 是某一字母表上的符号串,x = yz , 则y是x 的前缀,z 是x的后缀,特别是当z ≠ ? 时,y是x的真前缀;y≠ε 时,z 是 x 的真后缀。
例:
设 x=abc , 则 :
;7. 子字符串
一个非空字符串 x ,同时删去它的一个前缀和一个后缀后所得到的字符串称为 x 的子字符串,简称子串。
如果删去的前缀和后缀不同时为ε,则称该子串为真子串。
例如: 设 x = abc ,
其子串为: abc , ab , a , ? ,
bc , c , b 。
真子串为: ab, a , ? , bc , b , c 。
注意: ac 并不是 x 的子串。
; 当对符号串z = xy的头感兴趣而对其余部分不感兴趣时,采用省略写法:
z = x…
如果只是为了强调x在符号串z中的某处出现,则可表示为:
z = … x …
;8.符号串集的乘积
设A、B 是两个符号串集合,AB表示A与B的乘积,具体定义为:
AB = { xy | ( x∈A ) ∧ ( y∈B )} ,
运算结果仍然表示符号串的集合。
例2.3 设 A = { a, bc } , B ={ de, f } ,则:
AB = { ade, af, bcde, bcf }
特别有:1、?A = A? = ? ,其中?表示空集。
2、{ ? }A = A{ ? } = A;9.符号串集合的方幂
文档评论(0)