文法和语言21文法的基本概念一个程序设计语言是一个记
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精选PPT
8
定义 2.10 两个符号串集合A和B的乘积AB定义为: AB={xy|x∈A且y∈B}
例:设A={a,bc},B={b,c,da}则集合 AB={ab,ac,ada,bcb,bcc,bcda}。 注意:由于εx=xε=x 因此{ε}A=A{ε}=A ,但ΦA=AΦ=Φ 则:
A0={ε} A1=A A2=AA An=An-1A=AAn-1(n>0)
例:设有文法: <句子>→<主语><谓语> <主语>→<冠词><形容词><名词> <冠词>→the <形容词>→big <谓语>→<动词><直接宾语> <动词>→ate|caught <直接宾语>→<冠词><名词> <名词>→mouse|cat
精选PPT
2
则:
<句子>=><主语><谓语>=><冠词><形容词><名词><谓语 >
精选PPT
14
定义 2.13
用V表示Vn∪Vt。V称为文法G的字汇表。 例:文法G=(Vn,Vt,P,S),其中 Vn={S},Vt={0,l}, P={S→OS1,S→01}。这里,非终结符集中只含一个元素S; 终结符集由两个元素0和1组成;有两条产生式;开始符号是S。
精选PPT
15
例:文法 G=(Vn,Vt,P,S) 其中:
精选PPT
12
2.1.2 文法和Fra Baidu bibliotek言的形式定义
语言是字母表上的某些符号串集合,在这集合中的每个符 号串都是按一定规则生成的。其规则最常用的是重写规则(又 称产生式或生成式),它是形如α→β或α::=β(α,β)的有 序对,(读作α定义为β),其中α称为规则的左部,β称为规则 的右部。
精选PPT
13
是非空的,那么y是固有尾;同样如果y非空,那么x是固有头。 例:设z=abc,那么z的头是ε,a,ab,abc。除abc外,其它都
是固有头。z的尾是ε,c,bc,abc。z的固有尾是ε,c,bc
精选PPT
6
定义 2.7 设x、y 是同一字母表上的两个符号串,把y的符号写在X的
符号之后得到的符号串,称为的连接。记为xy 例:x=ab,y=wabu 则
第二章 文法和语言
2.1 文法的基本概念
一个程序设计语言是一个记号系统,如自然语言一样, 它的完整的定义应包括语法和语义两方面。所谓一个语言的语 法是指一组规则,用它可以形成和产生一个合适的程序,目前 在程序设计语言的识别中广泛使用的是上下文无关的文法。在 这理主要介绍文法和语言的概念。
精选PPT
1
精选PPT
3
2.1.1 符号和符号串 定义 2.1
字母表是有穷非空集合。用Σ表示。 例:无符号二进制数的字母表为{0,1}
C语言的字母表为字母、数字和若干专用符号组成的符号集 定义 2.2
符号串是由字母表中的符号组成的有穷序列,又称字符 串、串。 例:a,b,c,ba,bbac,caacb,···等都是字母表{a,b,c}上的符号串
5.数字串集合
6.数字串和字母串集合(包括ε)
精选PPT
11
约定:当对符号串z=xy的头感兴趣而对其余部分不感兴趣时, 可以采用省略写法:z=x···;如果只是为了强调x在符号串z中 的某处出现,则可表示为:z=···x···;如果只是为了强调x在符 号串z中的末尾出现,则可表示为:z=···x;
精选PPT
10
由于一个字母表上的正闭包包含了该字母表中的符号所能 组成的一切符号串,而语言是该字母表上的某些符号串的集合, 因此,某个字母表上的语言是这个字母表上的正闭包的子集, 而且通常是真子集。
例:若Σ={0,1},则Σ*={ε,0,1,00,01,10,11,000,001, 010, ···}
定义 2.12 文法G定义为四元组(Vn,Vt,P,S)。
其中: Vn为非终结符号(或语法实体,或变量)集;Vt为终结符号集; P为产生式(也称规则)的集合; S称作识别符号或开始符号。它是一个非终结符,至少要在一条 规则中作为左部出现。 Vn,Vt和P是非空有穷集,
显然:Vn和Vt不含公共的元素,即Vn∩Vt =Φ
例:令L={A,B,C,···,Z,a,b, ···,z},D={0,1, ···9}
1.L∪D 2.LD 3.L4 4. L(L∪D)* 5. D+ 6.D+∪L*则分别代 表什么集合?
1.字母或数字(包括ε)的集合
2.由字母开头后面跟一个数字的集合
3.由4个字母组成的字符串的集合
4.由字母开头后面是字母数字(可省略)的集合
精选PPT
9
显然: Σ1是字母表中的所有单个字符组成的字符串 Σ2是所有由字母表中二个的字符组成的字符串 Σ3是所有由字母表中三个的字符组成的字符串 Σn是所有由字母表中长度为n的字符串集合 定义 2.11
A的闭包 A*=A0∪A1∪A2∪··· A的正闭包 A+= A1∪A2∪A3∪··· 显然A+=AA*=A*A A*=A0∪A+
=>the<形容词><名词><谓语>=> the big<名词><谓语 >
=>the big cat <谓语>=>the big cat <动词><直接宾语>
=>the big cat ate<直接宾语>=>the big cat ate<冠词>< 名词>=>the big cat ate the <名词> =>the big cat ate the mouse
精选PPT
4
定义 2.3 不包含任何字符串的空符号串用ε表示
定义 2.4 符号串x的长度,即符号串x中的字符用|x|表示(读作x的
长度) 例:|abc|=3 |a|=1 |ε|=0 定义 2.5
设非空符号串u=xvy,其中v≠ε,则称v为u的子串,若|u|> |v|则称v为u的真子串
精选PPT
5
定义 2.6 如果z=xy是一个符号串,则x是z和头,而y是z的尾。如果x
z=xy=abwabu 显然:|x|+|y|=|z|
εx=xε=x
精选PPT
7
定义 2.8 设x是符号串,把x自身连接n次得到符号串z,即z=xx···xx(n
个x),称为符号串x的方幂,记为z=xn 例:x0=ε x1=x x2=xx x3=xxx ··· 定义 2.9
符号串集合若集合A中的一切元素都是其字母表上的符号 串,则称A为该字母表上的符号串集合。 注意:ε、{ε}和Φ(表示空集)的区别