您的位置:首页 > 其它

编译原理第二章总结

2018-03-25 15:05 351 查看
1.字母表:一个有限的字符集
例子:C语言的字母表
(1)大小写英文字母
a ~ z, A ~ Z
(2)数字
0 ~ 9
(3) 特殊字符
2. 单词符号:是语言中具有独立意义的最基本结构
3. 语法单位:由单词符号构成的更大的结构
一般包括: 表达式 语句 分程序(语句块)函数(有返回值)
语义是指这样的一组规则,使用它可以定义一个程序的意义。
名字和标识符:
标识符:以字母开头后跟字母数字组成字符串
例 PI、nm1
名字:当给标识符一定意义时,该标识符成为名字
例 PI :π(圆周率)
(变量名,函数名,类名,常量名,对象名等)
名字的属性
属性:
类型:以什么方式存放、大小、运算操作
作用域:全局变量,局部变量,静态函数
字母表:由若干元素组成的有限非空集合,用∑表示,它的每个元素称为一个符号。
符号串: 由∑中的符号所构成的有穷序列。
空字:不包含符号的序列称为空字,记为ε。
用∑*表示∑上的所有符号串的全体,空字也包括在其中。如:
  若∑={a,b},则∑*=?
  ∑*={ε,a,b,aa,ab,bb,aaa,…}。
  Φ表示不含人何元素的空集{}。
特别地:xº=ε
∑*的子集U和V中的(连接)积定义为:
         UV={αβ∣α∈U & β∈V }
 
V的闭包:
  令: V*  = V0∪V1∪V2È…
   称 V*是V的闭包。
V的正则包(正闭包,正则闭包):
记V+ = VV*, 称 V+是V的正则包,即V+ =V1∪V2∪V3È…。
 
文法是描述语言的语法结构的形式规则(即语法规则)
上下文无关文法的特点
它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。
特点:独立性
缺点:不能用来描述自然语言
一个上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符,一个开始符号,以及一组产生式。
 
终结符号:乃是组成语言的基本符号,即在程序语言中以前屡次提到的单词符号,如基本字,标识符,常数,算符和界符等.
非终结符号(也称语法变量):用来代表语法范畴。如“算术表达式”“布尔表达式”“过程”等。
一个非终结符代表一个一定的语法概念。因此非终结符是一个类(或集合)记号,而不是个体记号。
如:{E,T,F}
开始符号:是一个特殊的非终结符号,它代表所定义的语言中我们最感兴趣的语法范畴。
例:P(代表一个程序)
产生式(也称为产生规则或简称规则):是定义语法范畴的一种书写规则。
一个产生式的形式是  A→ α
其中箭头左边的A是一个非终结符,称为产生式的左部符号;
箭头右边的α是终结符号或与非终结符号组成的一符号串,称为产生式的右部,或称候选式。
可能用多个产生式对一个非终结符进行定义
E→i              E→E+E
E →E*E      E→(E)
或者:
E→i|E+E|E →E*E|E→(E)
 
直接推导:仅当A→àγ是一个产生式,有
αAβ →αγβ
该推导称为直接推导(直接导出)
文法G所产生的句子的全体是一个语言,将它记为L(G).
     L(G)={α|S =>α&α∈VT }
 
考虑一个文法G1:
      S→bA
      A→aA|a 它定义了一个什么语言呢?
从开始符S出发,我们可以推出如下句子:
   S ⇒bA ⇒ba
   S ⇒bA ⇒baA ⇒baa
   S ⇒bA ⇒baA ⇒… ⇒baa…a
可以写为:L(G1)={ba|n≥1}
 
例2.5 构造一个文法G3使
        L(G3)={anbn|n≥0}
    
解;  S→aSb|ε
 
例2.6:  已知语言L={anbbn| n ≥1}, 写出产生L的文法。
[解]:
       G[S]:     S →aAb
               A →aAb|b
例2.7:试构造生成语言L={anbnci|n³0, i ³1}的文法
    解:G(Z):    Z→AB
                A →aAb|εe
                B →cB|c
 
例2.8:试构造文法,该文法可以生成所有不能以0开头的偶数
G(E): E®SA|SB
S->+|-|ε
A->2|4|6|8
C->A|1|3|5|7|9
D->0|C
G->0|A
B->CFG
F->DF|D|ε
 课后作业:









 
 心得体会:
   第二章的难点在于文法和语言的相互推倒转换,再有就是定义性的东西太多,初次接触有点类似于大二学习的离散数学的部分内容,比如集合的闭包、正则闭包、字符串集合的并交乘积等。甚至还有一部分类似于数据结构的二叉树,比如求一个语法树。总体来说难度不是太高,我个人理解重点在于掌握语言文法的推倒,多读多理解定义性的知识。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: