编译原理期末知识点和习题复习,后续会持续更新。(欢迎各位大佬指正
文章目录
前言
主要是考察语言和文法的转换
一、形式语言基础
1、符号和符号串
(1)字母表:有穷非空符号(元素)集。用大写字母表示。
- (2)符号:可以相互区别的记号(元素)。用小写字母或数字表示。
(3)符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。简称为串、行。
(4)空串不含任何符号的串。用 ε 表示。
2、符号串和符号串集的运算
(1)长度:符号串中符号的个数。串β的长度记为|β |。
【例1】|010 |=3, |00101|=5
特别地有: |ε| =0
(2)连接:串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy 。记为xy 或x·y 。
(3)串的方幂:串x自身连接n次。记为x^n。
x^n =xxx … xxx,即x^0=ε,x^n= x^(n-1)x = x x^(n-1) (n>0)
【例2】设串x=abc,则有:
x0=ε
x1=abc
x2=xx= abc abc
x3= x2 x = x x2 = abc abc abc
……
xn= xn-1 x = x xn-1 = abc abc …… abc abc
(4)积:设A、B为两个符号串集合,其乘积A·B是x∈A且y∈B的所有符号串xy构成的集合。记为AB或A·B。
即AB={xy | x∈A,y∈B}
【例3】若A={ab,bc},B={ac,cb},
则积AB={abac,abcb,bcac,bccb}
特别地有:{ε}A=A{ε}=A
(5)集合的方幂:设A为符号串集合,则串集合A的幂运算递归定义如下:
A^0={ε}
A^n =AA ……AA =A^(n-1)A =AA^(n-1) (n>0)
【例4】若A={a,b}则有
A0={ε},A1=A ={a,b}
A2=AA ={aa,ab,ba,bb}
A3=AA2 ={aaa,aab,aba,abb,baa,bab,bba,bbb}
……
An =AAn-1 ={aa … aa, … … ,bb … bb}
(6)闭包:设A为符号串集合,则串集合A的闭包表示为A*,定义为:
A*=A^0∪A^1∪…… ∪ A^k ∪ ……
正闭包:串集合A的正闭包表示为A^+,定义为:
A^+=A^1∪A^2∪…… ∪ A^k ∪ ……
具有以下性质:
A*=A0∪A+
A+=AA*=A*A
(7)形式语言:是一个字母表上按某种规则构成的所有符号串的集合。
二、文法和语言的形式定义
1.文法的引例
【非终结符号】一系列需要定义的语法成分,即规则中用尖括号括起来的,由它们可推出其它句子成分。例如: <主语>,<谓语> 等。大写字母表示
【终结符号】若干基本符号,是组成句子的最基本符号。例如:张三,是,学生。小写字母表示
【产生式】一组产生句子的规则:
P→α 或 P ::=α
【开始符号】语言中的句子只能从它开始推导。
2.文法的形式定义
【定义2.1】文法定义为四元组 G=(VN,VT,P,S )。其中:
VN为非终结符号(或语法实体,或变量)集;
VT为终结符号集; VN ∩ VT = ϕ,通常用V表示VN ∪ VT,称为文法G的字母表;
P为产生式或规则(α→β或α∷=β)的集合, 其中α∈V+,且 α 中至少要包含一个非终结符,β∈V*;
S是识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。
VN,VT和P是非空有穷集。
三、推导与句型分析
1、推导、句子和句型
【定义2.2】给定文法G=(VN,VT,P,S),如果α→β是文法G的产生式(或规则),若有符号串ν,ω满足: ν =γαδ, ω= γβδ, 其中γ ∈V*, δ ∈V* ,则称ν直接推导到ω,记作 ν Þ ω, 也称ω直接归约到ν。
【例1】文法 G2: S→0S1, S→01
S =》0S1
0S1 =》00S11
00S11 =》000S111
000S111 =》00001111
【定义2.3】若存在直接推导序列:
ν =》 ω1 =》 ω2 =》... =》 ωn= ω,(n>0)
则称ν多步推导出ω ,记为ν ω 。
【定义2.4】若有ν ω,或ν = ω ,则记为ν
ω
【定义2.5】设G[S]是一个文法,若存在S α,则称α是文法G[S]的句型。若α仅由终结符组成,即S
α,且α∈VT*,则称α是文法G[S]的句子。
2、不同类型的推导和句子分析
规范句型:由规范推导推导出的句型。
3、语言的形式定义
【定义2.6】文法G所描述的全部句子的集合称为语言,记为L(G) 。即L(G)={ α | Sα,其中S为文法的开始符号,且α∈VT*}
四、文法和语言的分类
1、0型文法
限制产生式α→β中α∈ (VN∪VT)+ ,且至少含有一个非终结符,而β∈(VN∪VT) *。
对应语言:0型语言
自动机:图灵机
2、1型文法(上下文有关文法
限制产生式 α→β 中 |α|≤ |β|
对应语言:1型语言
自动机:线性界限自动机
3、2型文法(上下文无关文法
限制产生式为对任一产生式A→β,都有A∈VN , β∈(VN∪VT)*
对应语言:二型语言
自动机:下推自动机
4、3型文法(正规文法
− 右线性文法: A→aB或A→a
− 左线性文法: A→Ba或A→a
其中,A、B ∈VN ,a ∈VT 。
对应语言:3型语言
自动机:有穷自动机
五、语法树与文法的二义性
1、推导与语法树
一个句型不一定只有一个语法树,也不一定只有唯一一个最左/最右推导
2、文法的二义性
若文法G中存在某个句子对应两棵不同的语法树,则称该文法具有二义性。
或者,若文法G中存在某个句子有两个不同的最左(右)推导,则称该文法具有二义性。
六、课后习题
(1)
(2)
(3)
(4)
(5)
(6)
(5)(6)题答案下期揭晓