- 5
- 0
- 约5.06千字
- 约 24页
- 2018-10-19 发布于山东
- 举报
第3章
语言和上下文无关文法及分析
主要内容
文法及语言的表示及定义
分析过程
分析树与抽象语法树
二义性
文法的扩展表示:EBNF和语法图
TINY语言的语法
• 什么是语言?
• 如何描述语言?
• 如何识别语言中的句子?
• 语言的定义
1. Webster曾把语言定义为:“为相当大地区的
公众所懂得并使用的‘话’,以及组成这些‘话’的方
法的统一体。” 描述程序语言不精确,建立语言
的数学理论无用。
2. “某一字母表上符号串(句子)的集合。”需进一
步精确化:为语言中的句子提供结构性的描述;
提供准确判别句子正确与否的手段。
3.在1960年,P.Naur和J.Backus首先用BNF对
ALGOL语言进行了描述。用BNF定义程序语言对
语义的表述还得借助自然语言,但足以进行语法
描述。
• 语言的描述/表示
1. 当一个语言仅含有有限个句子时,可采用枚举
法来表示,即把该语言中的全部句子一一列举出
来。若一个语言L只含有如下两个句子,可将它
表示为:L={I am a teacher, You are students}
2.类似前面的标识符、算数表达式,制定有限条
规则(文法),用来产生所要描述的语言之中的
全部句子(数目不限) 。
3.建立一种装置( 自动机,构造一种算法或过
程),以某一字母表上的所有符号串作为输入,并
检验或识别这些符号串,当一个符号串是此字母
表上某给定语言中的句子时就接受它,反之则拒
绝接受。自动机是语言识别器或识别程序的抽象
描述。
• 英文句子的组成规则
• 例 分析英文句子The student reads a
book.
• 句子的分析过程
• 符号“”表示推导,即用某条规则的右部替
换该规则的左部。反过程为归约。
• 基本概念
• 非终结符号(语法变量)集VN :用尖括号括起来的那些符号(代表语
法成分或语法范畴,可推出其它句子成分)的集合。上例中
VN= {句子,主语,谓语,宾语,动词,名词,冠词
}
• 终结符号集VT :规则中的英文单词符号,是组成句子的最基本符号。
由这些终结符号组成的集合称为,上例中
VT= {The,student,reads,a,book }
• 开始符号或识别符号:语言中的句子只能从它开始推导。上例中的〈句
子〉。
• 规则(即产生式):一组产生句子的组成描述。每一规则都是用符号
“→”连接起来的有序对(,):
• →
左部变量是一个由终结符号和非终结符号所组成的符号串且至少包含
一个非终结符号。
右部变量是一个由终结符号和(或)非终结符号所组成的符号串。
规则的作用:(1)用于定义或描述语言中的语法成分;(2 )常用来产
生(即推导)语言中的句子。
箭头“→”也可以用“::=”来表示。
注意:(1)规则的右部可以使用选择(|)、并置、括号()等运算符,
但不能使用重复(* )运算符,用递归实现重复的运算效果。(2 )使用
元符号产生空串。
• 文法的定义
文法G:用来描述语言的语法结构,形式地定义如下的四元组:
G= (VN ,VT ,P,S )
VN是非终结符集;VT是终结符集;VNVT= ;P是产生式集;S是开
始符号。P是产生式集,形式为:→,其中:V+ 且至少包含一个
非终结符,V* , V=VNVT 。
上例中使用的文法可表示为:
G= (VN ,VT ,P,句子)
VN= {句子,主语,谓语,宾语,动词,名词,冠词
}
VT= {The,student ,read ,a , book }
P 中的规则就是上例的九条规则。
在表示文法时,通常有以下的习惯用法:
(1)大写字母A~Z表示非终结符,或者用尖括号把非终结符括起来;
(2 )前面的小写字母a、b、c表示单个终结符号;
(3 )后面的小写字母u、v 、w 、x 、y 、z 以及、等符号表示
(V=VNVT )上的符
原创力文档

文档评论(0)