第二章形式语言理论
构造语法树
方法:把开始符号做 为根结点,对每一个 直接推导画一个分支, 分支的名字是直接推 导中被替换的非终结 符号,直到再无分支 可画结束。
例如:推导 S AB AcBd
Accdd abccdd
S
A
B
a
b
cBd
c
d
语法树的构造过程
S AB AcBd Accdd abccdd
S (1)
S A (2) B
A0→S0B }
1型文法(上下文有关)
它是0型文法的特例, 对P中的任一产生式α→β,都 有|β|≥|α| ≥ 1, 仅仅 S→ε除外,但S不得出现在任
何产生式的右部。
例 文法G[S]:
S→aSBE
S→aBE EB→BE
aB→ab bB→bb bE→be eE→ee
1型文法产生式的一般形式是 A→, , ∈ V* ,A∈VN , β∈V+ ,它表示当A的上文为且下文 为时可把A替换成,因此称1型文法为上下文有 关文法。
在程序设计语言中,正规文法通常用来描述单词的 结构。
文法类别
产生式形式
产生的语言 说明
0型文法 (短语文法)
1型文法 (上下文有关文法)
2型文法 (上下文无关文法)
α→β
0型语言
α∈V+ ,且至少含一 个非终结符,β∈V*
对产生式基 本无限制
α→β,|β|≥|α| A→β,A∈VN , β∈V*
1型语言(上下 将A替换成 文有关语言) 时,必须
3、有害规则:U→U ,无用且引起文法的二义
4、可空非终结符: 2型文法允许以下产生式 S→ε,
该产生式称为空产生式,S称为可空非终结符。在消除左 递归方法中用到空产生式。
例:文法G[S]: (1)S→Be (2)B→Ce (3)B→Af (4)A→Ae (5)A→e (6)C→Cf (7)D→f
子的集合,即
L(G)={x|S
=>* x,且 x∈VT* }
例 文法G: S→0S1, S→01
S0S1 00S11 03S13 … 0n-1S1n-1 0n1n L(G)={0n1n|n≥1} 3、文法和语言的关系: 文法G生成的每个终结符号串都在L(G)中 L(G)中的每个串确实能被G生成
(父子结点,兄弟结点) 子树:语法树的某个结点和它向下射出的部分 末端结点:没有向下射出的边的结点成为末端结点。
在相对于句型的语法树中,末端结点可能是非终结 符号。
语法树的特征
给定文法G,G=(VN,VT,P,S),对于G的任何句型都能构造 与之关联的语法树(推导树)。这棵树具有下列特征:
1、根结点的标记是开始符号S;
2. 符号串 ➢ 定义:由字母表中的符号组成的任何有穷序列 例:0,00,10是字母表∑={0‚1}上的符号串 a,ab,aaca是Α={a‚b,c}上的符号串 ➢ 在符号串中,符号是有顺序的,顺序不同,代 表不同的符号串,如:ab和ba不同 ➢ 不含任何符号的符号串称为空串,用ε表示 注意:{ε}并不等于空集合{ } ➢ 符号串长度: 符号串中含有符号的个数 如: |abc|=3 | ε|=0
2. 语法树
1、定义:语法树是这样的一个语法结构,它的结 点由符号组成。根结点对应于开始符号。只有 非终结符号对应的结点有子结点。并且,一个 结点和它的子结点分别对应于文法中的一个规 则的左部和右部。
2、引入语法树的意义:作为识别句子的辅助工具, 语法树可以表示句子的结构。这一点对于其后 的语义分析有非常重要的意义。
E
E
E +T
E +T
T T ×F
T T ×F
从语法树中看不出句型中的符号被替代的顺序
2.5 文法和语言的一些特性
1、无用非终结符:某个非终结符不出现在文法的 任何一个句型中,并且不能从它推出终结符号串。含
有该非终结符的规则即不可终止。
2、不可达文法符号:如果一个非终结符不出现在该文
法的任何其他的产生式的右部。该非终结符为不可达文 法符号,含有该非终结符的规则即不可达规则
4. 符号串集合:
➢ 定义: 若集合A中所有元素都是某字母表上 的符号串,则称A为字母表上的符号串集 合。
➢ 符号串集合的乘积:符号串集合A和B的乘 积定义为:AB ={xy|x∈A且y∈B},即AB是由A
中的串x和B中的串y连接而成的串xy组成的集合。
若集合A = ab,cde B = 0,1
则 AB = ab0,ab1,cde0,cde1
显然 {ε}A = A{ε} = A
➢ 符号串集合的方幂: 设A是符号串的集 合,则称Ai为符号串集A的方幂,其中i 是非负整数。具体定义如下: A0 ={ε}
A1 = A , A2 = A A
AK = AA......A(k个)
5. 集合的闭包 ➢ 闭包 集合Σ的闭包Σ *定义如下: Σ * = Σ 0∪ Σ1∪ Σ 2∪ Σ 3∪… 例:设有字母表Σ={0,1} 则Σ*=Σ0∪Σ1∪Σ2∪… ={ε,0,1,00,01,10,11,000,…} 即Σ*表示Σ上所有有穷长的串的集合。
说明:
➢ V=VN∪VT,V称为文法G的字母表 ➢ P中产生式形如:α→β,其中α∈V+且至少含一个非终结
符,β∈V*
➢ VN,VT和P是非空有穷集
➢ VN∩VT=φ ➢ S是一个非终结符,且至少要在一条产生式的左部出现
➢ 非终结符代表一个语言中的语法成分,如<赋值语句>, 它是构成程序的一个语法成分,这个符号本身不会在程 序中出现,而终结符是组成程序的具体的符号。
形式语言理论是编译理论的重要基础,它主要研 究组成符号语言的符号串的集合及它们的表示法、 结构与特性。
形式语言和编译理论表和符号串
1. 字母表 ➢ 定义:元素的非空有穷集合,记为∑。 例:∑={0‚1} Α={a‚b,c} ➢ 元素也称为符号,字母表也称符号集。 ➢ 程序语言的字母表由字母数字和若干专用 符号组成。
0型文法
如果对于某文法G,P中每个规则具有下列形式: α→β 其中α∈V+ , β ∈ V*,则该文法G为 (Chomsky)0型文法或短语结构文法。相应的语言
称为0型语言或短语结构语言。
如文法G,其中VN={A,B,S} VT={0,1} P={ S→0AB 1B→0 B→SA|01 A1→SB1
第二章 形式语言理论
形式语言
Chomsky于1956年提出了一种用来描述语言的 数学系统。人们把用一组数学符号和规则来描述 语言的方式称为形式描述,而把所用的数学符号 和规则称为形式语言。
形式语言,只是从语法上研究语言。它是抽象的 数学系统,用于模拟程序设计语言的语法,或者 是并不很成功地模拟自然语言如英语的语法。
➢ 正闭包 Σ+ = Σ1∪Σ2∪Σ3∪…称为Σ的正闭包。 + 表示上的除ε外的所有有穷长串的集合 ➢ 自反闭包Σ* = Σ0∪Σ+
Σ+ = ΣΣ* = Σ* Σ
2.2文法和语言
1、文法定义: 文法G(Grammar)定义为四元组(VN,VT,P,
S) VN (Nonternimal):非终结符集 VT (Terminal):终结符集 P (Production):产生式(规则)集合 S:开始符号或识别符号
3、广义推导:* 或 * 若有v + w 或 v=w,
则记为v * w,v广义推导出w,w广义规约到v(可以 包含0步推导)
三种推导的比较
直接推导()的长度为1 直接推导序列( +)的长度n≥1 广义推导( *)的长度≥0
规范推导与规范规约
考虑两种特殊推导:最左推导和最右推导,即 对于一 个推导序列中的每一步直接推导,都是对最左(最右) 非终结符进行替换。
多余规则为:(6)不可终止 (7)不可到达
2.5文法的二义性(Ambiguity)
文法G:E→E+E|E×E|(E)|i 句子 i×i+i 对应的语法树
E
E E +E
E ×E
E ×E i
iE +E
i
i
两个不同的最左推导:
i
i
推导1:E E+E E×E+E i×E+E i×i+E i×i+i
推导2:E E×E i×E i×E+E i×i+E i×i+i
3. 符号串的运算 ➢ 符号串的连接:设x、y是符号串,它们的连接 是把y的符号写在 x的符号之后得到的符号串xy 例如 x="ST",y="abu" ,则 xy="STabu" 显然εx = xε=x ➢ 符号串的方幂:把符号串a自身连接n次得到 的符号串an = aa…aa
例如 a1=a a2=aa a0=ε
2型文法(上下文无关文法)
它是1型文法的特例,对任一产生式α→β,都有 α∈VN , β∈(VN∪VT)*
例 文法G[S]: S→AB A→BS|0 B→SA|1 ➢2型文法产生式的一般形式是: A→,它表示不管 A的上下文如何都可把A替换成,因此被称为上下文 无关文法。 ➢通常程序设计语言的文法,可用2型文法来描述, 因此我们重点研究2型文法。
3、作用:直观地描述上下文无关文法的句型推导
过程。给定文法G=(VN,VT,P,S),对于G的任何句 型都能构造与之关联的语法树
语法树的相关概念
结点:每个树的结点对应于一个符号。结点的名字 就是该符号。
边:两个结点之间的连线。 根结点:没有边进入的结点。 分支:某个结点向下射出的边和其结点称为分支。
2. 推导和规范推导:
α→β是文法G的产生式,若有v,w满足: v=γαδ,w=γβδ, 其中γ,δ∈V*
则称v直接推导出w,也称w直接归约到v,
第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
文法分类的意义
文法分类对于实现程序设计语言的编译 程序具有重要意义。
形式语言与自动机理论第二章蒋宗礼
2.2 形式定义
• P——为产生式(production)的非空有穷集合。P中的元素均具有 形式αβ,被称为产生式,读作:α定义为β。其中 α∈(V∪T)+,且α中至少有V中元素的一个出现。β∈(V∪T)*。 α称为产生式αβ的左部,β称为产生式αβ的右部。产生 式又叫做定义式或者语法规则。
A1A },A)。
第20页/共106页
2.2 形式定义
⑸ ({S , A , B , C , D},{a , b , c , d,#} , {SABCD , Sabc# , AaaA , ABaabbB , BCbbccC,cCcccC,CDccd# ,CDd#, CD#d},S)。
⑹ ({S},{a , b} , {S00S , S11S , S00 , S11},S)。
第32页/共106页
2.2 形式定义
• 例 2-5 设G=({S,A,B},{0,1},{SA|AB,A0|0A,B1|11},S)
对于n≥1,
A n 0n
首先连续n-1次使用产生式;A0A, 最后使用产生式A0;
A n 0nA
连续n次使用产生式A0A;
B1
使用产生式B1;
B 11
使用产生式B11。
• CFL
• CFG(CNF、GNF)、PDA、CFL的性质。
• TM
• 基本TM、构造技术、TM的修改。
• CSL
• CSG、LBA。
第4页/共106页
教材及主要参考书目
1.蒋宗礼,姜守旭. 形式语言与自动机理论. 北京:清华大学出版 社,2003年
2.John E Hopcroft, Rajeev Motwani, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Computation (2nd Edition). Addison-Wesley Publishing Company, 2001
形式语言理论
形式语言理论形式语言理论(formal language theory)用数学方法研究自然语言(如英语)和人工语言(如程序设计语言)的产生方式、一般性质和规则的理论。
形式语言是模拟这些语言的一类数学语言,它采用数学符号,按照严格的语法规则构成。
从广义上说,形式语言是符号取自某个字母表的字符串的集合。
如同自然语言具有语法规则一样,形式语言也是由形式文法生成的。
一个形式文法是一个有穷变元集合,这些变元也称为非终结符或语法范畴。
每个变元都可以用来定义语言,定义方式可以是递归的,即通过一些称为终结符的原始符号,加上变元自身,递归地加以定义。
和变元有关的规则称为生成式,生成式决定了语言是如何构造出来的。
一个典型的生成式表示:给定变元所代表的语言包含这样一些字符串,它们是通过连结运算,将另外某些变元语言中的字符串和若干终结符连结起来而得到的。
形式文法被严格地定义为四元组G=(V,T,P,S),其中V和T分别是变元和终结符的有穷集合,并且V和T分别是变元和终结符的有穷集合,并且V和T没有公共元素,即V∩T=Ø。
S是一个特殊变元,称为开始符号。
P是生成式的有穷集合,生成式的基本形式是:a→β,这里a和β,这里a和β都是(V∪T)*中的元素,即它们都是由变元和终结符组成的符号串,但要求a至少含有一个非终结符。
在形式文法定义中,生成式集合P是至关重要的。
在对使用符号的惯例作某些约定后,仅仅考查生成式,就能推断出一个文法的变元、终结符和开始符号,故可以通过列出生成式来定义一个形式文法。
形式文法G=(V,T,P,S)产生的形式语言记为L(G)。
L(G)中的字符串ω都具有如下特点:①该字符串仅由终结符组成,即ω∈T*;②该字符串能由开始符号S派生出来,即从S出发,通过应用零个或多个P中的生成式,由S可以推导出ω。
根据P中生成式a→β的特点,可以将形式文法及其产生的形式语言分类,构成所谓的形式语言谱系。
形式语言理论中重点研究四类文法和语言:①0型文法。
形式语言与自动机_课件_陈有祺第02章 文法的一般理论
的情况。若从S出发,先用第一个产生式n-1次,即S aSb
aaSbb … an-1S bn-1,最后再使用第二个产生式一次,得
到S
anbn,这个推导对于任何n>1都是对的。再加上n=1的
情况,即可得到L(G)={an bn∣n≥1 }。
文法语言
例2.9 给出文法G,它的产生式是:
S→aB∣bA
形式文法与形式语言
例2.4 下面的各四元组都是文法。
① G1 = ({A, B}, {0,1},{A→0B, B→1B, B→0}, A)。
② G2 =( {A,B,C},{a,b,C},{A→aBC, B→b, C→CC, C→ε}, A)。
③ G3=( {L,M,N}, {0,1,2}, { M→0LN, L→1, 0L→2, LN→12,N→0},M)。
其他的符号如:iF,tHEn,ElsE,;,:=,<,>,+,-,*,/, a,b,C,x,y,z,等等都是构成语言的基本符号,也就是 字母表中的符号。
第五条规则关于<语句表>的定义,这是一种递归的 定义形式。
问题的提出
例2.2 根据例2.1中的各规则,我们指出下述的字符串 wHilE x≤5 Do x := (x+2) 是一个合法的语句。
形式文法与形式语言
例2.5 对例2.3 中 给出的文法用定义2. 1加以规范化。其四 元组表示就是: ({<SEntEnCE>,<Noun pHrasE>,<DEtErminEr>, <Noun>, <VErb pHrasE>, <VErb>}, {tHE, a, applE, Cat, man, Eats, sinGs, runs}, {<SEntEnCE>→<Noun pHrasE><VErb pHrasE>, <Noun pHrasE>→<DEtErminEr><Noun>, <DEtErminEr>→tHE, <DEtErminEr>→a, <Noun>→applE,<Noun>→Cat,<Noun>→man, <VErb pHrasE>→<VErb><Noun pHrasE>, <VErb pHrasE>→<VErb>, <VErb>→Eats,<VErb>→sinGs,<VErb>→runs}, <SEntEnCE>)
第二章形式语言的基本知识
第二章形式语言的基本知识第二章形式语言的基本知识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模型来描写自然语言,对于有限状态模型、短语结构模型和转换模型等三个模型,从语言学和数学的角度进行了理论上的分析,建立了形式语言理论,具有划时代意义。
编译原理 形式语言ppt课件
表示 ,例如上例5中 步经 的过 推导记为
句子 thm e onk动 ey词 冠词 名词
规那么的简化表示
在前面的语法规那么定义中,有些语法范畴〔如<名 词>、<动词>〕有假设干条不同的规那么来定义它, 为简明起见,我们可以将它们写在同一个左部语法
范畴下,将其定义值用符号“|〞〔读作‘或’〕隔 开。如<名词>、 <动词>、 <冠词>的定义规那么可 简记为
正闭包 A+ = A1∪A2∪A3∪…称为Σ的正闭包 A + 表示上的除ε外的一切用穷长串的
集合
注: Σ* = Σ0∪Σ+ 注: Σ+ = ΣΣ* = Σ* Σ
字母表上的一个言语是上符合某种规那么的一 些符号串的集合 ,是*的一个子集
例如:Σ={a,b} Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…} 1. 集合{ab,aabb,aaabbb,…,anbn,…}或 {w|w∈Σ*且w=anbn,n≥1}为字母表上的一个言语 2. 集合{a,aa,aaa,…}或{w|w∈Σ*且w=an,n≥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
形式语言理论
在程序设计语言中,正规文法通常用来描述单词的 结构。
文法类别 0型文法 (短语文法) 1型文法 (上下文有关文法)
产生式形式
产生的语言
说明 对产生式基 本无限制
α→β 0型语言 α∈V+ ,且至少含一 个非终结符,β∈V* α→β, |β|≥|α|
1型语言(上下 将A替换成 文有关语言) 时,必须考 虑A的上下 文 2型语言(上下 无需考虑A 文无关语言) 在上下文中 的出现情况 3型语言 (正规语言) 产生式全部 是规定的形 式
3.
符号串的运算
符号串的连接:设x、y是符号串,它们的连接
是把y的符号写在 x的符号之后得到的符号串xy 例如 x="ST",y="abu" ,则 xy="STabu" 显然εx = xε=x
符号串的方幂:把符号串 a 自身连接 n 次得到 的符号串an = aa…aa
例如 a1=a a2=aa a0=ε
说明: V=VN∪VT,V称为文法G的字母表 P中产生式形如:α→β,其中α∈V+且至少含一个非终结 符,β∈V* VN,VT和P是非空有穷集 VN∩VT=φ S是一个非终结符,且至少要在一条产生式的左部出现 非终结符代表一个语言中的语法成分,如<赋值语句>, 它是构成程序的一个语法成分,这个符号本身不会在程 序中出现,而终结符是组成程序的具体的符号。
形式语言和编译理论中的 最基本概念 ——符号串和符号串集合
2.1字母表和符号串
1.
字母表
定义:元素的非空有穷集合,记为∑。 例:∑={0‚1} Α={a‚b,c}
元素也称为符号,字母表也称符号集。
形式语言概论.
第二章 形式语言概论
本章主要介绍形式语言理论中的一些最基 本的概念和基础知识,它是学习以后各章 节的基础。 大多数程序设计语言的单词和语句是由正 规文法和上下文无关文法来描述的。 有穷自动机是词法分析的理论基础。
2.1 语言成分
一个语言的成分包括字母表 (Alphabet),文法(Grammar)以及它的语 义。 本节将主要讨论字母表和符号串的一 些基本概念。
字母表与符号 :字母表是元素的非空有穷集合。
字母表中的元素称为符号。举例说明。
符号串及其运算 :
① 符号串的概念 ③ 符号串的连接。 ⑤ 符号串的方幂。 ⑦ 符号串集合的正闭包。 闭包。 ② ④ ⑥ ⑧
符号串的长度。 符号串集合的乘积。 符号串集合的方幂。 符号串集合的自反
形式语言
形式语言是字母表上按某种规则构成的所 有串的集合,这些串称为句子或字。对于 一个具体的语言,都有语法和语义两个方 面,形式语言是指不考虑语言的具体意义。 形式语言的表示方法 有穷语言:枚举法 无穷语言:文法
3型文法(右线性文法和正规文法)
在正规文法中,P中的每个产生式(S→例外, S为文法的开始符号)只有两种形式:A→a , A→aB 。其中 A,BVN ,aVT。此外,如果 S→是P中的一个产生式,那么S不能出现在任何产 生式的右边。 例 正规文法G5(S)(十进制实数) SdB|+A|-A|· G AdB|· G BdB|· H|d GdH HdH|d 其中d代表十进制数字。
2型文法(上下文无关文法)
在1型文法的产生式中上下文1和2用空符号 串代替,则有以下形式的产生式称为2型文法: A→ 其中,AVN,(VN∪VT)+。 例 2型文法G3=(VN,VT,P,E) 其中, VN={E,T,F} VT={+,*,(,),i } P={E→E+TT,T→TFF,F→(E) i } 3型文法(右线性文法和正规文法)
