通过对第一章的认真归纳总结,我对编译原理有了一个大概深层次的理解。现在我不能在一章一章认真的复习了。我需要边做题边归纳总结。我相信认认真真的看一遍书,考试绝对能少80分。但是我现在没时间那样做了,好了,我要开始题海战术了。
2.1文法与语言
对二进制,其字母表是{0,1},当然字母表中至少要有一个字母。
符号串:由字母表中的字母组成的有穷串。
空串:不包括任何符号的串,只有一个名字,没有东西,叫做空串,有点像E那个符号。
|abc| = 3,表示abc的长度。
对xvy,v!=null,则v称作它的一个子串。
符号串的首尾:P18
符号串的运算:P18-P19
2.1.3符号串集合
如所有二进制数是字母表{0,1}上的符号串,则所有二进制数为该字母表上的符号串集合。
我们平时所学的C语言,其源程序就是C基本符号集上的一个符号串集合而已。
定义符号串集合之间的乘积运算:
AB={xy|x∈A,且y∈B}
C语言源程序是其基本字符集的正闭包的真子集。
有关正闭包的概念请参考离散数学或者计算机编译原理P20
2.2文法与语言的形式定义
重写规则(词法规则,语法规则等等):简称规则。
P22页的规则沿用了BNF扩充法来表示文法和语言
文法的定义:文法G[Z],文法名是G,Z是识别符号。详情见P23。
VN是文法的非终结符集合,VT是它的一切终结符。
自汇表:VN U VT,即出现在文法规则中的一切符号所组成的集合。
河在Peter中游泳!荒唐可笑。
2.2.2语言的形式定义
L(G[Z])={x|Z => * x,且x∈Vt+}
x是文法G[Z]的一个句子,句子的集合构成了语言。
左递归:U::=U.......
右递归:U::=.......U
递归:U::=....U....
2.3语言的分类
Chomsky文法G是一个四元组{VN, VT, P, Z}
1. 0型文法又称作短语结构文法P36
2. 1型文法,又称上下文敏感文法(CSG)。xUy,只有在x....y中U才能被替换成其他的,所以是上下文敏感。
3. 2型文法,上下文无关。CFG。因为U::=u,在替换U时,无需考虑上下文情况,即不需要考虑U左右是否有其它成分。
4. 3型文法,即正则文法(RG),这个文法相当重要
3型文法原理:
A::=a或者A::=Aa|aA,只能有这种形式,要么终结符,要么加一个非终结符。称作左/右线性文法(按A的顺序)。
句子:只包含终结符号 句型:包括非终结符号