第2章 形式语言的基础知识

合集下载

第2章形式语言的基本知识

第2章形式语言的基本知识
例:Σ ={a,b} Σ *={ε ,a,b,aa,ab,ba,bb,aaa,aab,…} Σ +={a,b,aa,ab,ba,bb,aaa,aab,…}
• 7.符号串的 前缀:s为符号串,把s从尾部删去若干个 (包括0个)符号后所余下的部分称为s的前缀。
符号串abc的前缀是什么?
• 8.符号串的 后缀:s为符号串,把s从前部删去若干个 (包括0个)符号后所余下的部分称为s的后缀。
文法
<赋值语句>::=<标识符>“=”<表达式> <表达式>::=<表达式>“+”<表达式> | <表达式>“*”<表达式 > <表达式>::=“(”<表达式>“)” | <标识符> | <整数> | < 实数>
赋值语句
标识符
表达式
=
y
表达式 + 表达式
y =x+r*6
标识符 表达式
表达式
*
x 标识符
推导方法:从一个要识别的符号 开始推导,即用相应规则的 右部来替代规则的左部, 每次仅用一条规则去进行推导。
<句子> => <主语><谓语> => < 代词><谓语>
<句子>::=<主语><谓语> <主语>::=<代词>|<名词> <代词> ::=你|我|他 <名词>::= 王民|大学生|工人|英语 <谓语>::=<动词><直接宾语> <动词>::=是|学习 <直接宾语>::=<代词>|<名词>

第2章 形式语言基础

第2章 形式语言基础

研究符号串集合的表示方法、结构特性 以及运算规律。
第2章 形式语言基础
【内容提要】
2.1 形式语言是符号串集合 2.2 形式语言是由文法定义的 2.3 各种语法成分的定义 2.4 两类特性文法 2.5 文法变换方法 2.6 形式语言的分类
2.1 形式语言是符号串集合
【形式语言】是字母表上的符号按一定的 规则组成的所有符号串集合;其中的每个符号串 称为一个句子。
【例2.2】 L2={ abmc,bn | m>0,n≥0 } 字母表∑2= {a,b,c},
▪句型1: abmc 有句子:abc, abbc, abbbc,…
▪句型2: bn 有句子:, b, bb, bbb,…
【注】 (1) b0=(空符号串),b1=b,b2=bb,b3=bbb,…
(2) L1 为有限语言; L2 为无限语言。
5.固有头,固有尾
对于每个符号串s, s和ε两者都是符号串s的前缀, 后缀和子串。 符号串s的固有头,固有尾:
z=xy,x是z的头,y是z的尾,如果x非空则y是固 有尾,如果y非空则x是固有头。 例:在Z=abc Z的头:ε,a,ab,abc;其中固有头:ε,a,ab
Z的尾:ε,c,bc,abc;其中固有尾:ε,c,bc
则该集合的文法是:
(1) A->aBa B->b|Bb|bB
(2) Z->ABC A->a C->a B->bB|Bb|b
(3) A->aB B->ba|bB 练习2. Σ={a,b,c}上的字符串集
A={ancbn|n>=0} 该集合的文法是:
A->aAb|c
【例2.8】标识符的文法
【标识符】指字母开头的字母、数字序列。

第二章 形式语言概论

第二章 形式语言概论

语言的有穷表示有两个途经
生成方式(文法)
语言中的每个句子可以用严格定义的 规则来构造。
识别方式(自动机)
用一个过程,当输入的一任意串属于 语言时,该过程经有限次计算后就会停止 并回答“是”,若不属于,要么能停止并回 答“不是”,要么永远继续下去。
§2.2 文法及其分类
2.2.1 文法的定义
A*=∪Ai(i≥0)=A0∪A1∪A2∪A3∪…
例如:A={a,b}
则A*={ε,a,b,aa,ab,ba,bb, aaa,aab,aba,abb, …}
A*与A+的关系:
A*=A0∪A+
A+=AA*=A*A
由此得出结论:n语言是由句子组成的集 合,是由一组符号所构成的集合。换言之,字 母表S上的一个语言是S上的一些符号串的 集合。(字母表S上的每个语言是S*的一个 子集)。
的规则(或说是P中的一个产生式),和 是V*中的任意符号,若有符号串v,w,满 足v= ,w= ,则称v (应用规则 )直接产生w,或v直接推导出w,或 w是v的直接推导,或w直接归约到v,记 作v w。
例:
文法G[S]由如下规则组成: SA A AB|B B 0|1|2|…|9 其中S是文法 G [S] 的识别符号,该文法的 字母表为:V={S,A, B,0,1,…,9} 用这些规则和直接推导的定义可以推出所有 正整数,如可推导出24:
P15~P16例2.6~例2.10的文法类型。

2型文法可改写成3型文法。
例:将如下的上下文无关文法改写为等价的 正规文法。 G[S]:SabcA AbcB Ba 改写后G[S]: AbE SaM EcB MbN Ba NcA
文法分类的意义
文法分类对于实现程序设计语言的编译 程序具有重要意义。

第二章 形式语言概述

第二章 形式语言概述
– E + T * i,i,(E + T)都是G的句型。 – i + i * i,(i + i) * i,i都是G的句子。
2.3 文法的分类
0型文法(短语文法):
– 对产生式无限制。
1型文法(上下文相关文法): – 文法中任意的产生式→,则存在1,2 (VNVT)*; (VNVT)*;AVN;使得 = 1A2, = 12。
– A+ = A1 A2 … … – A+ = A A*
例:
– { 0, 1 }+为所有二进制串的集合。
2.1 基本概念
语言
– 一个语言为满足一定规律的串的集合。
语言的表示方法
– 集合表示:{ 1, aa, b }, { anbn| n > 0 }。 – 串集合的运算:a+{1, a}*。
推导:如果存在一个直接推导序列 = 0 = ,n > 0,则称为的一个推导,记为
''。1


n
''* 表示 '' 或者 =
例:10为S的推导,1100为S的推导,111S000为1S0的推 导。
2.2 文法与语言
最左推导:如果A ,VT*,AVN, , (VNVT)*,则称为A的一个最左推导。
– 符号的有穷序列称为符号串 – 不包含任何符号的串称为空串,记为
– 串α中符号的个数称为串α的长度,记为||
2.1 基本概念
串集合的乘积 – 令A、B为两个串集合,则A与B的乘积A·B = { | A, B },也可以缩写为AB – {} ·A = A ·{} = A, Ø·A = A ·Ø = Ø

第二章形式语言的基本知识

第二章形式语言的基本知识

第二章形式语言的基本知识第二章形式语言的基本知识2-1什么是形式语言2-2字母表和符号串的基本概念2-3用文法产生法描述语言2.3.1通过文法产生语言的方式2.3.2为已知的语言构造相应的文法2-4句型分析2.4.1短语和简单短语2.4.2文法的二义性和语言的二义性2-5文法和语言的分类2-6文法的其他表示方法2-7C--语言的形式定义2-8小结2-1什么是形式语言2-2字母表和符号串的基本概念2-3用文法产生法描述语言2.3.1通过文法产生语言的方式2.3.2为已知的语言构造相应的文法2-4句型分析2.4.1短语和简单短语2.4.2文法的二义性和语言的二义性2-5文法和语言的分类2-6文法的其他表示方法2-7C--语言的形式定义2-8小结2- 1什么是形式语言一、形式语言的提出目标程序源程序编译程序如何确切地描述或定义高级程序设计语言形式语言2-1什么是形式语言一、形式语言的提出形式语言是研究符号的语言,它仅考虑符号间的关系,不考虑含义。

即用数学方法(主要是代数方法)对语言进行形式化描述。

从非形式化的角度来讲,语言是人们交流思想的工具,从语言学本身来说,也是一门古老的科学,在很早以前人们就用数学方法开始对语言学进行研究。

1847年,俄国数学家布拉库夫斯基就用概率论进行语法词源及语言历史比较研究。

1904年,波兰语言学家指出,语言学家不仅要掌握初等数学而且还要掌握高等数学。

1931年,俄国数学家就用概率论研究俄语元音字母和辅音字母序列。

特别是1946年电子计算机问世以来更加促使数学和语言学结合研究。

2-1什么是形式语言一、形式语言的提出1956年,28岁的N.Chomsky(乔姆斯基)在《信息论杂志》上发表了《语言描写的三个模型》,他首次采用Markov模型来描写自然语言,对于有限状态模型、短语结构模型和转换模型等三个模型,从语言学和数学的角度进行了理论上的分析,建立了形式语言理论,具有划时代意义。

第2章形式语言概论

第2章形式语言概论
G=(VN,VT,P,S) 其中: VN={I, L, D} VT={a,b,c, … x,y,z,0,1,2,…
,P9=}{ I→L| I L| I D L→a | b | c | … | x | y | z D→0 | 1 | 2 | 3 | … | 9
S=I }
文法的形式定义
若将定义标识符的文法设计成: G=(VN,VT,P,S )
1. 字母表 元素的非空有穷集合。 例如,∑={ a, b, c } 根据字母表的定义,Σ是字母表,
它由a、b、c三个元素组成。
字母表和符号串
注意: (1) 字母表中至少包含一个元素。 (2) 字母表中的元素, 可以是字母、 数字或其他符号。 例如,∑' ={0, 1} 是一个字母表,由0、1两个元素 组成。
第2章 形式语言概论
形式语言理论是编译的重要理论 基础。本章主要介绍编译理论中用到 的有关形式语言理论的最基本概念, 重点介绍如何采用形式化的方法描述 程序设计语言。
第2章 形式语言概论
字母表和符号串 文法和语言的形式定义 文法和语言的分类 短语、直接短语和句柄 语法树和文法的二义性
概述
当n=1 L={aa, bb} L={a2n, b2n | n≥1}
当n=2 L={aaaa, bbbb} 当n=3 L={aaaaaa, bbbbbb}
…… L={aa, bb, aaaa, bbbb, aaaaaa, bbbbbb, … …} 即语言L是由偶数个a,偶数个b这样的 符号串组成的集合。
幂运算定义为:
A0={} A1=A A2=AA
… An= AA … A=AAn-1(n>0)
n
符号串的运算
例如,设A={ a, b },则 A0={} A1=A={ a, b } A2=AA={ aa, ab, ba, bb } A3=AAA=A2A

第二章 形式语言基础

1
第二章 形式语言基础知识
§2.1 引言
一、形式语言提出 二、语言描述方法 八、 递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性
§2.2 用文法生成法对语言 进行描述
一、巴科斯范式 二、语法和语义 三、语法树
§2.4 语法分析初步
一、自顶向下语法分析 二、自底向上语法分析
§2.3 形式语言基本概念和 术语
§2.1 引言
一、形式语言提出 二、语言描述方法 八、 递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性
§2.2 用文法生成法对语言 进行描述
一、巴科斯范式 二、语法和语义 三、语法树
§2.4 语法分析初步
一、自顶向下语法分析 二、自底向上语法分析
§2.3 形式语言基本概念和 术语
9
3. 自动机识别法:用自动机对语言中的句子进行识别,自动 机是描述离散变量的一个系统(数学模型),因在形式语言中 称为识别器,也可看成是一个识别程序。不同语言对应不同自 动机,对应某个语言的自动机能接受该语言的句子,否则不接 受。
下面我们着重讨论用文法生成法来描述语言。
10
第二章 形式语言基础知识
三、语法树
除了上面可以根据语言语法规则来推导出句子,还 可以用图解形式来表示。以图解(树)形式来描述句子 语法结构关系,称语法树。
26
句子 the man has a book的推导过程及对应的语法树
<句子>
27
句子 the man has a book的推导过程及对应的语法树
<句子> <主语> <谓语>
16
巴科斯范式是描述语法规则的一种表示方法,它是由巴科斯 为了描述 ALGOL 语言在 ALGOL60 报告中首先提出的。采用 这种形式定义语法规则,可以用简洁的公式把各种语法规则 严格而清晰描述出来。例如,在高级语言中大家所熟知的 〈标识符〉这种语法成分,它用巴科斯范式描述为: 〈 标识符〉∷=〈字母 〉|〈 标识符 〉〈字母〉|〈标识符〉 〈数字〉 〈字母〉∷= A|B|C|D|…|Z 〈数字〉∷= 0|1|2|…|9 这样便刻画出了〈标识符〉是以字母开始的一串字母和数字

第2章 形式语言概述


2.1.1字母表

定义2.1 字母表是元素的非空有穷集合,字母表中 的元素称为符号,因此字母表也称为符号表。高级 语言如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,=, ==,>,<,;(,)}



P为产生式的规则:
{N→L|NL|ND
L→a|b| c
D→1|2|3 }
2.2.3文法的分类

自从乔姆斯基(Chomsky)于1956年建立形式语言的描述以来,把文法分成 四种类型,即0型、1型、2型和3型文法。


0型文法(短语文法)
设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈ (VN∪VT )+ ,且至少含有一个非终结符,而β∈(VN∪VT )*,则称G是一 个0型文法。0型文法又称短语文法,它的能力相当于一个图灵机。 例如,A→
1.0型语言与图灵机
图灵机是识别0型文法的识别装置。图灵机被
引进作为描述过程的数学模型,过程的直观 概念被看成是能机械实现的有穷指令的序列。 图灵机的基本模型如图2-1所示。它有一个有 限控制器、一个被分成若干单元的输入带和 一个一次读入一个单元的读头组成
a1
a2

2.符号串的长度 符号串x中所包含的符号的个数称为符号串x的长度, 记为|x| 。例如字母表{0,1},则|010110|=6。ε记为 空串,长度为0。


3.子字符串
定义2.3 设有非空符号串u=xvy,其中x、v、y是符号串, 且v≠ε,则称v为符号串u的子符号串。

形式语言复习资料

形式语言与自动机理论(电子版笔记)第二章文法2.1 文法的形式定义文法(grammar)G=(V,T,P,S)V——为变量(variable)的非空有穷集。

∀A∈V,A叫做一个语法变量(syntactic Variable),简称为变量,也可叫做非终极符号。

它表示一个语法范畴。

所以,本文中有时候又称之为语法范畴。

T——为终极符(terminal)的非空有穷集。

∀a∈T,a叫做终极符。

由于V中变量表示语法范畴,T中的字符是语言的句子中出现的字符,所以,有V∩T=Φ。

S——S∈V,为文法G的开始符号(start symbol)。

P——为产生式(production)的非空有穷集合。

P中的元素均具有形式α→β,被称为产生式,读作:α定义为β。

其中α∈(V∪T)+,且α中至少有V中元素的一个出现。

β∈(V∪T)*。

α称为产生式α→β的左部,β称为产生式α→β的右部。

产生式又叫做定义式或者语法规则。

约定⑴对一组有相同左部的产生式α→β1,α→β2,… ,α→βn可以简单地记为:α→β1|β2|…|βn读作:α定义为β1,或者β2,…,或者βn。

并且称它们为α产生式。

β1,β2,…,βn称为候选式(candidate)。

⑵使用符号英文字母表较为前面的大写字母,如A,B,C,…表示语法变量;英文字母表较为前面的小写字母,如a,b,c,…表示终极符号;英文字母表较为后面的大写字母,如X,Y,Z,…表示该符号是语法变量或者终极符号;英文字母表较为后面的小写字母,如x,y,z,…表示由终极符号组成的行;希腊字母α,β,γ…表示由语法变量和终极符号组成的行推导(derivation)设G=(V,T,P,S)是一个文法,如果α→β∈P,γ,δ∈(V∪T)*,则称γαδ在G中直接推导出γβδ。

γαδ⇒γβδ读作:γαδ在文法G中直接推导出γβδ。

“直接推导”可以简称为推导(derivation),也称推导为派生。

归约(reduction)γαδ⇒γβδ称γβδ在文法G中直接归约成γαδ。

形式语言简介.ppt

这是形式语言所研究的问题。
接收一个语言,目的就是使用某种自 动机模型来接收句子,该模型所接收 的所有句子,也形成一个语言。
这是自动机所研究的问题。
本章介绍形式语言的基本内容。
语言的形式定义
设是一个字母表, L*, L称为字母表上的一个语言, wL, w称为语言L的一个句子。
2.1 例子语言
A→+|-|*|/
+、-、*、/ 称为A的侯选式。
E→ i E→EAE E→(E) 也可以记为: E→ i|EAE|(E)
注意:
这组产生式 没有表示出运算符的优先级。
表示出运算符的优先级的产生式: E→E+T|E-T|T T→T*F|T/F|F F→(E)|i
其中: E代表表达式,T代表项,F代表因子 (E)代表的是带小括号的表达式。 表示:先算因子,再*、/,最后+、-。
规则(的个数)是有限的,但可以产生无 限个句子和长度无限的句子;
因为规则是递归的。
BNF的描述方式
巴科斯和诺尔采用的巴科斯-诺尔范式(BNF-Backus-Naur Form)描述规则:
<括号匹配串>::= ( )
<括号匹配串>::=(<括号匹配串>) <括号匹配串>::= <括号匹配串> <括号匹配串>
S称为非终结符,在推导过程中,可以被 代替的符号。
(和)称为终结符,在推导过程中,不可以 被代替的符号。
→ 是产生式系统的元符号,不属于非终 结符,也不属于非终结符。
例2-1:由偶数个0组成的串的语言。 规则的自然语言描述方式:
①00是该语言的基本的句子; ②若S是句子,则00S是句子。
形式化的描述方式: S→00 S→00S
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



字符串:字母表中符号的有穷序列。
字符串的长度:组成该字符串的符号的个 数。字符串的长度记作||。 例如字符串banana的长度为6。空字符串 记作,由0个符号组成,故||=0。



字符串的前缀:该字符串领头的若干符号。 字符串的后缀:该字符串结尾的若干符号。 例如,字符串abc具有前缀,a,ab和abc; 其后缀有,c,bc,abc。
S aSBE aaBEBE aabEBE aabBEE aabbEE aabbeE aabbee
(SaSBE) (SaBE) (aBab ) (EBBE ) (bBbb) (bEbe) (eEee)
S aSBEaaSBEBEaaaBEBEBE
第2章 形式语言的基础知识
内容提要


形式语言 文法和语言 分析树
2.1 形式语言

符号和字符串

符号:抽象实体,不加以形式定义。就像 几何学中的“点”。或者叫原子概念,凭 直觉去体会。 字母表:有限个符号的集合。字母表一般 用记。例如,英语的字母表 ={a,b,…,z,A,B,…,Z};汉语的字母表由汉 字构成。

例2.1 文法G=(VN, VT, P, S),其中VN={S}, VT={0,1},P={S0S1, S01}。

例2.2 文法G=(VN, VT, P, S),其中VN={<标识 符>,<字母>, <数字>},VT={a,,z,0,,9}, P={<标识符><字母> <标识符><标识符><字母> <标识符><标识符><数字> <字母>a||z <数字>0||9} S=<标识符>

3型文法与3型语言(对应有限自动机) 文法G的每个产生式具有下列形式: A或AB 其中,A、BVN, VT*,则文法G称为右 线性文法。若每个产生式具有下列形式: A或AB 则文法G称为左线性文法。右线性和左线性文 法 都 称 为 3 型 文 法 、 正 规 文 法 , 记 为 RG (Regular Grammar)。3型文法相应的语言为3 型语言或正规语言,它的识别系统是有限自 动机。
例如,S,0S1,000111都是例2.1的文法G的 句型,其中000111是G的句子。<标识符><字 母>,<字母><数字>,a1等都是例2.2的文法G 的句型,其中a1是G的句子。


定义 文法的语言 文法G[S]产生的句子的全体称为由文法G[S] 产 生 的 语 言 , 记 为 L(G) , 即 有 S0S1, S01 L(G)={∣S*且VT*}。 例 如 , 例 2.1 的 文 法 产 生 的 语 言 的 句 子 具 有 0n1n的形式。 定义 文法等价 若L(G1)=L(G2),则称文法G1和G2是等价的。 例如,文法G[A]: A0R,A01,RA1。 和例2.1的文法等价。

习惯上只将产生式写出。并有如下约定:


第一条产生式的左部是开始符号 用尖括号括起的是非终结符,否则为终结 符。或者大写字母表示非终结符,小写字 母表示终结符 G可写成G[S],其中S是开始符号

定义 直接推导&直接规约 设文法G=(VT,VN,S,P)且、(VTVN)* ,如 果存在产生式A((VTVN)*),则称A 可直接推导出,或者说是A的直接 推导,记做 A 其中“”表示直接推导出,是应用产生规 则进行推导的记号。反过来,则称可直接 规约到A,或者说A是的直接规约。

1型文法与1型语言(对应线性界限自动机) 文法G的产生式 在0型文法的基础上增加了字符长度上满足 ||||的限制,则称文法G为1型文法或上下文 有 关 文 法 , 记 为 CSG (Context-Sensitive Grammar)。1型文法相应的语言称为1型语言 或上下文有关语言,它的识别系统是线性界 限自动机。


字符串的运算Leabharlann 字符串的连接:如果x和y是字符串,那么 x和y的连接xy是把y接到x后面所形成的字 符串。 例如,如果x=dog,y=house,则 xy=doghouse。由的定义,显然有 ==。


字符串的方幂:设x是字符串,把x自身连 接n次得到字符串z,即z=xxx…x,称为字 符串x的n次方幂,记作z=xn。我们规定 x0=。 例如,设x=AB,则x0=,x1=AB, x2=ABAB,x3=ABABAB。对于,n>0,有 xn=xxn-1=xn-1x。
S0S1, S01


<标识符><字母> <标识符><标识符><字母> <标识符><标识符><数字> <字母>a||z <数字>0||9
例2.1和例2.2中的文法都是上下文无关的。 例2.3 设G=(VN, VT, P, S),VN={S, B, E}, VT={a, b, e}, P={SaSBE, SaBE, EBBE, aBab, bBbb, bEbe, eEee} 文法G是上下文有关的,L(G)={anbnen|n1}
注意“”与“”不同,“”是产生式中 <标识符><字母> 的定义记号。直接推导是对文法符号串A中 <标识符><标识符><字母> 的非终结符A用相应的产生式A的右部来 <标识符><标识符><数字> 替换,从而得到。 <字母>a||z
S0S1, S01 <数字>0||9
若字符串的前缀(或后缀)不是字符串本 身,则称之为真前缀(或真后缀)。


字符串的子串:去掉字符串的一个前缀和 后缀后得到的字符串。例如,nan是 banana的一个子串。
字符串的子序列:从字符串中删除0个或 多个符号后得到的串(这些被删除的符号 可以不相邻)。例如,baaa是banana的子 序列。
2.2.1 基本概念 定义 文法 文法表示成四元组G=(VT, VN, S, P),其中: (1)VT 为终结符号(terminal)集,是一个非空有限集, 它的每个元素称为终结符号; (2)VN 为非终结符(non-terminal)集,也是一个非空有 限集,其每个元素称为非终结符号。 要求VTVN=; (3)S为一文法开始符号,也称作识别符号,是一个特 殊的非终结符号,即SVN;

定义 推导&规约的自反传递闭包 如果有 1+n 或 1=n ,则记 1*n ,表示 从1出发,经过0步或若干步可推导出n。
S0S1, S01
<标识符><字母> <标识符><标识符><字母> <标识符><标识符><数字> <字母>a||z <数字>0||9
例如, 对例2.1的文法,0S100+001100,当然 也可以是0S100*001100。 对2.2的文法,<标识符>+x1,当然也 可以是<标识符>*x1。
例如,对例2.1和例2.2的文法G,可以给出一 些直接推导的例子: 0S10011, S0S1, 0S100S11 <标识符><标识符><字母> <标识符><字母><数字><字母><字母><数 字>

定义 推导&规约的传递闭包 如果存在一个自1至n的直接推导序列: 123„n(n>1),则我们称 1 可推 导出 n ,或称 n 规约到 1 ,记为 1+n ,它 表示从1出发经过一步或若干步可推导出n。



字符串集合的连接:两个字符串集合A和 B的连接AB={xy|xA,yB},即AB是满 足x属于A,y属于B的所有字符串xy所组 成的集合。 例如,若A={a,b},B={c,d},则 AB={ac,ad,bc,bd}。另外,我们有 {}A=A{}=A。 对任意字符串集合A,An=AAA…A,即n 个A相连。A0定义为{}。
产生式是定义语法实体的一种书写规则。一 个语法实体的相关规则可能不止一个。 P1,P2,„,Pn 可将这些有相同左部的产生式合并为一个, 即缩写成 P1∣2∣„∣n 其中,每个 i(i=1,2,„,n)称为P的一个候选式, 直竖“∣”读为“或”,它与“”一样是 用来描述文法的元语言符号(即不属于的字 符)。


Kleene闭包:一个固定的字母表上所有 的字符串的集合称为集合的Kleene闭包, 记作*。根据定义,我们有 *=012…n…。 正闭包:+=123…n…称为的 正闭包。显然有 *=0+ +=*=*

形式语言 语言:给定字母表上的任意一个字符串集合, 即*的子集(*本身也是自己的子集,所以* 也是语言)。空集和由空字符串组成的集合 {}都是语言。

0型文法与0型语言(对应图灵机) 如果文法G的每一个产生式具有下列形式: 其中,V*VNV* ,即至少含有一个非终结 符;V*;则称文法G为0型文法或短语结构 文法,记为PSG(Phrase Structure Grammar)。 0型文法相应的语言称为0型语言或称递归可 枚举集,它的识别系统是图灵(Turing)机。
1型文法的另一种定义方法是文法G的每一个 产生式具有下列形式: A 其中,AV*,AVN,V+;显然它满足 前述定义的长度限制,但它更明确地表达了 上下文有关的特性,即A必须在、的上下文 环境中才能被所替换。
自然语言的语法应属于上下文有关文法。

2型文法与2型语言(对应下推自动机) 文法G的每一个产生式具有下列形式: A 其中,AVN ,V* ,则称文法G为2型文法 或上下文无关文法,记为CFG (Context-Free Grammar)。2型文法相应的语言称为2型语言 或上下文无关语言,它的识别系统是下推自 动机。 程序设计语言的语法是上下文无关的。
相关文档
最新文档