当前位置:文档之家› 文法和形式语言

文法和形式语言

s=ab是A中的符号串,a, b, c都是字母表中的符号
5
二、符号串的运算
➢符号串相等
– 字母表∑上的两个符号串x,y,若x,y的各个符 号依次相等,则该两符号串相等,记x=y
例如:∑={a,b,c},有x, y符号串
若x=abbc, y=abbc
x=y
若x=ab, y=ba
x≠y
6
➢符号串长度
由字汇表V中的元素组成
➢符号串集合:
– 字母表Σ上若干个符号串组成的集合 – 如:有符号串集合
A={ab,bc}
B={a,ab,abc}
4
句子和语言
➢句子
– 字母表上符合某种规则构成的符号串。
➢语言
– 字母表上句子的集合。
➢ 注:
– 用a, b, c, …, r表示符号; – 用s, t, u, …, z表示符号串; – 用A, B, C, …, Z表示符号串集合。 – 如在字母表={a, b, c}上,有符号串集合A={a, ab, aa, abc},
– 含义:U定义为u,或者U由u组成 – 规则又叫产生式:U产生出u
14
引例
➢例如:自然语言中有下面的句子
– Young men like pop music. 语法成分或语法类
➢其语法规则如下:
– <句子><主语><谓语>:句子由主语和谓语构成
– <主语> <形容词><名词>
– <谓语> <动词><宾语>
<无符号整数>::=<数字串>
<数字串>::=<数字串><数字>
<数字串>::=<数字>
<数字>::=0
<数字>::=1

开始符号为:<无符号整数>
<数字>::=9
– 规则中出现的所有符号构成字汇表,记为V
该文法中的字汇表V={0,1,…,9,<数字>,<数字串>,<无符号整数>}
16
规则的组成元素
– 例如:A={ab,bc}; B={ac,cb} – 则AB={abac,abcb,bcac,bccb}
➢注:
– 由于 – 所以
x= x =x {} A=A {} =A
– 串集的自身乘积称作串集的方幂
➢空集:不包含任何元素
– 有A=A=,但
10
➢符号串集合的幂
➢例如:串集A的各次方幂定义为:
➢类似自然语言由句子构成,句子要符合一定 的规则,称为“文法”
➢语言是无穷的,规则确是有限的
➢如何用有限的文法规则推导出无限的句子, 即“语言的有穷表示”
语言的 有穷表示
生成方式(文法) 识别方式(自动机)
13
一、文法的概念
➢文法
– 构造句子的规则,用于产生或推导句子
➢规则,二元组
– 形如:U::=u或Uu,即“符号::=符号串”的形 式
– 字母表中的元素 – 如:a,b,c即为符号
➢不同文种的语言有适用于该语言的字母表
3
符号串与符号串集合
➢符号串:
– 字母表中符号组成的有穷序列。 – 如: Σ={a,b,c},则可以有符号串a, b, c, aa, ab, ac,
aaa…… – 有序性:若符号串中符号出现的顺序不同,符号串
也不同,如ab和ba是不同的符号串 – 空串:不含有任何符号的串称作空串,记作。
– <宾语> <形容词><名词>
– <形容词> Young | pop:形容词可以是young或 者pop
– <名词> men | music
– <动词> like
单词符号或单词
15
形式化定义
➢文法写成G[Z]的形式
– Z为开始符号或识别符号,至少要出现一次在某 一条规则的左部
如文法G[<无符号整数>]中有下列规则:
可证明:A*= A0 ∪A+ A+=AA*= A*A
若A={a, b},则有 A*={, a, b, aa, ab, ba, bb, aaa, …} A+={ a, b, aa, ab, ba, bb, aaa, …}
推论:若A是字母表,则A*包含空串和由A中 符号构成的所有可能的符号串
12
2.2 文法和语言
符号串中包含符号的个数,用︱x︱表示
Байду номын сангаас
︱abcd︱= 4
︱ ︱=0
➢符号串连接
设字母表∑上的两个符号串x,y,把y的所有
符号相继写在x的符号之后所得到的符号串称
为x与y的连接,用xy表示
若x=ab,y=ba 则xy=abba
且︱xy︱=︱x︱+︱y︱
xy≠ yx
x= x =x
7
➢符号串的逆 符号串x的倒置
例:x=abc,符号串x的逆为cba
★符号串的前缀、后缀、子串
后缀:符号串任意尾部,包括空串 前缀:符号串任意首部,包括空串 如:符号串abc
前缀: , a, ab, abc 后缀:c, bc, abc, 子串:a, b, c, ab, abc, bc,
8
➢符号串的幂
– 符号串x自身连接n次得到的 – 如:x=ab, – 则有x0=
x1=ab x2=abab … xn=abab…ab(n个ab相连,而不是相乘) – 注:用an表示n个a相连接的符号串,而不是n个a 相乘
9
符号串集合的乘积
➢定2,义…:},若则串乘集积A=A{B=1,{2, |
…},串集B={1, A and B}
– 在A中任取一个符号串与B中任一符号串连接
➢形式化方法:定义基本符号串和规则,根据 规则“造句”
➢形式语言:只看语法,不考虑含义
– 用规定的符号串和规则来书写的语言
2
2.1 符号和符号串
➢组成形式语言的基本要素 ➢字母表
– 是符号的非空有穷集合 – 习惯用大写字母表示 – 如有字母表Σ、V:Σ={a,b,c} V={0,1}
➢符号(字符)
第二章 文法和形式语言
形式化定义,基本概念 文法的写法,BNF表示法 规则的推导,语法树及其二义性 文法变换,文法和语言的分类
概述
➢程序设计语言包含三方面
– 如:x=a+b*c – 语法:语言的构成规律,C语言中赋值语句的写法 – 语义:语言所代表的含义,对=号右边的表达式
进行计算,再赋值给左边的变量 – 语用:语言的实际应用,用于计算和保存值
– A0={}
– A1=A
– A2=AA
– ……
– An=AAn-1 (=An-1A) (n>0) 为符号串集合A的自
身乘积
若A={ab, bc},则有
A0={}
A1={ab, bc}
A2={abab, abbc, bcab, bcbc}
……
11
★集合的闭包与正闭包
闭包:A*= A0 ∪A1 ∪A2∪… ∪An 正闭包: A+= A1 ∪A2∪… ∪An,不包含空串
相关主题