3第三章 上下文无关文法及分析1.pdfVIP

  • 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是终结符集;VNVT= ;P是产生式集;S是开 始符号。P是产生式集,形式为:→,其中:V+ 且至少包含一个 非终结符,V* , V=VNVT 。 上例中使用的文法可表示为: 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=VNVT )上的符

文档评论(0)

1亿VIP精品文档

相关文档