这一章让我回想起本科学习过的编译原理,虽然当时学的不走心,但多少还是有些印象,回头可以继续看一下,都往干净了!!!!
【“推出”符号在这里显示为à,可能是编码问题】
1、 图(本质上是二元关系):无向图、有向图、连通图、回路
2、 树
3、 字符串
a) 字符串:字符集和Σ、字符串、空串ε、全体字符串Σ*
b) 字符串连接:
例如:Σ={a,b,c}, x=abc,y=cba,x和y的连接xy=abccba,x的2次方幂x2 = abcabc
c) 字符串集合的乘积:
d) 闭包运算:字符串V的闭包定义为:
V*=V0∪V1∪V2∪…,V+=V1∪V2∪V3…=V*-{ε}
一般的,我们用|x|表示字符串x的长度;
4、 形式语言:用来精确描述语言(包括人工语言和自然语言)及其结构的手段。
乔姆斯基把语言定义为:按照一定规律构成的句子和符号串的有限或无限的集合。
一般的,描述一种语言可以有三种途径:
(1) 穷举法:只适合句子数目有限的语言;
(2) 文法(产生式系统)描述:语言中的每个句子用严格的定义的规则来构造,利用规则生成语言中合法的句子;
(3) 自动机法:通过对输入的句子进行合法性检验,区别哪些是语言中的句子,哪些不是语言中的的句子;
文法用来精确地描述语言和其结构,自动机则是用来机械地刻画对输入字符串的识别过程。文法能够清晰的描述语言中句子的结构,但是难以用来确定一个字符串是否属于这套规则所定义的语言。而由自动机来识别一个字符串是否属于该语言则相对简单,但是自动机很难描述语言的结构。
Definition 1:形式语法(形式文法),形式语法是一个四元组G=(N,Σ,P,S),其中,N是非终结符的有限集合(有时也称变量集、语法种类集);Σ是终结符有限集合,N∩Σ=Φ;V=N∪Σ称为总词汇表;P是一组重写规则的有限集合:P={αàβ},其中α、β是由V中元素构成的串,但是,α中至少应含有一个非终结符;S∈N称为句子符或初始符;
Definition 2:推导;按非平凡方式派生(加号)表示传递闭包,即一个符号串到另一个符号串至少经过一步推导或派生;派生(乘号)表示自反或传递闭包,即一个符号串到另一个符号串经过n>=0步推导或派生;
如果每步推导只改写最左边的那个非终结符,这种推导称为“最左推导”;
如果每步推导都先改写最右边的非终结符,则为最右推导,又称为规范推导;
例如:给定文法G(S)的一组规则:
SàPNP
NPàNN|NP Aux NP
Pà关于
NNà鲁迅|文章
Auxà的
字符串“关于鲁迅的文章”的最左推导:
SèPNPè关于NPè关于NP Aux NPè关于NN Aux NPè关于 鲁迅 Aux NPè
关于鲁迅的NPè关于鲁迅的NNè关于鲁迅的文章
Definition 3:句子:对于文法G,不含非终结符的句子形式成为G生成的句子。
由文法G生成的语言(G识别的语言)是指G生成的所有句子的集合,记为L(G);
5、 形式语法的类型:
a) 3型文法(正则文法),文法G的规则集P中所有规则满足:AàBx,或Aàx,其中A、B∈N,x∈Σ。在这种文法中,规则右部的非终结符(如果有的话)出现在最左边,所以又称左线性正则文法;如果一正则文法所有含非终结符的规则形式为AàxB,则称右线性正则文法。
b) 2型文法(上下文无关文法,context-free grammar,CFG),文法G的规则集P中所有规则满足:Aàa,其中
A∈N,x∈(N∪Σ)*。
c) 1型文法(上下文相关文法,context-sensitive grammar,CSG),文法G的规则集P中所有规则满足:aAbàarb,其中A∈N,a,b,r∈(N∪Σ)*,且r至少包含一个字符。
d) 0型文法(无约束文法),文法G的规则集P中所有规则满足:aàb,其中
A∈(N∪Σ)+,A∈(N∪Σ)* 。
6、 CFG识别句子的派生树(语法树、分析树、推导树)
7、 二义性文法:文法G对于同一个句子存在两课或两棵以上不同的分析树
8、 自动机:有限自动机、下推自动机、线性带限自动机、图灵机。
9、 有限自动机(FA)又分为确定性有限自动机(DFA)和不确定性有限自动机(NFA)。