第二章文法和语言的概念和表示27482.pdf
《第二章文法和语言的概念和表示27482.pdf》由会员分享,可在线阅读,更多相关《第二章文法和语言的概念和表示27482.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 文法和语言的概念和表示 本章概述 本章中,我们将概述高级程序语言的结构和主要的共同特征,并介绍程序语言的语法描述方法。主要学习内容:程序设计语言的定义,高级语言的一般特性,高级语言的语法描述,上下文无关文法,语法分析树和二义性,乔姆斯基文法体系。学习目标:理解程序语言的词法、语法和语义等概念,进一步掌握高级程序设计语言的一般结构和主要共同特征,使学生具有必要的基础知识;理解文法和语言的一些基本概念,如文法的定义和构造、句型、句子、语言、推导、语法树等。学习重点和难点:语法,语义,文法的构造。2.1 概述 显然,用高级语言编程比用低级语言来得方便,但要解决两个问题:1.计算机怎样懂得高级
2、语言程序,这就需要一个翻译程序实现从源程序到目标程序的转换。2.用什么方法来精确定义高级语言,即怎样精确描述高级语言。要构造一个编译程序,应深刻理解被编译的源语言的结构(即词法和法)及其含义(即语义),同时要弄清源语言的语法规则和语义规则是采用什么理论或什么方法来描述的。当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动
3、词和直接宾语。任何语言均可看作一个集合。这个集合中的每个元素都是在一定符号集(字母表)上的一个符号串。对于自然语言来说,它们是定义在某个字母表上的句子的集合。对于程序语言来说,它们也是定义在某个字母表上的句子的集合。这里的句子,就是一个源程序。通常,源程序是由关键字、标识符、常数、运算符以及一些界限符组成。这些语法成分统称为单词或单词符号。单词符号是语言中具有独立意义的最基本单位。语言的单词符号是由词法规则所确定的,即词法规则规定了单词符号的形成规则。“我是大学生”是汉语的一个句子。用语法来描述:句子=主语 谓语 主语=代词名词 代词=我你他 名词=王明大学生工人英语 谓语=动词 直接宾语 动
4、词=是学习 直接宾语=代词名词 有了这一组规则以后,按照如下方式用它们导出句子:开始去找=左端的带有句子的规则并把它由=右端的符号串代替,这个动作表示成:句子主语 谓语,然后在得到的串主语 谓语中,选取主语或谓语,再用相应规则的=右端代替之。比如,选取了主语,并采用规则主语=代词,那么得到:主语 谓语代词 谓语,重复做下去,这样句子“我是大学生”的导出的全部动作过程是:句子主语 谓语 代词 谓语 我谓语 我动词 直接宾语 我是名词 我是大学生 语言概述:语言是由句子组成的集合,是由一组符号所构成的集合。汉语所有符合汉语语法的句子的全体 英语所有符合英语语法的句子的全体 程序设计语言所有该语言的
5、源程序的全体 研究语言 每个句子构成的规律 每个句子的含义 每个句子和使用者的关系 研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系 语言研究的三个方面 语法 Syntax 语义 Semantics 语用 Pragmatics 语法 表示构成语言句子的各个记号之间的组合规律。程序语言的语法通常是指这样的一组规则,用它可以形成和产生一系列合式的程序。这组规则称为语法规则。语义 表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)。程序语言的语义通常是指这样的一组规则,用它可以定义一个程序的意义。这组规则称为语义规则。语用 表示在各个记号所出现的行为中,它们
6、的来源、使用和影响。每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看:其一是该句子的创立者所想要表示的意义;另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什么符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础
7、。2.2 形式语言基础 2.2.1 字母表和符号串(1)字母表:符号的非空有限集合。例:=a,b,c (2)符号:字母表中的元素。例:a,b,c (3)符号串:符号的有穷序列。例:a,aa,ac,abc,空符号串:无任何符号的符号串或长度为零的符号串,记为。符号串的形式定义 有字母表,定义:是上的符号串;若 x 是上的符号串,且 a,则 ax 或 xa 是上的符号串;y 是上的符号串,iff(当且仅当)y 可由(1)和(2)产生。2.2.2 符号串和符号串集合的运算(1)符号串相等:若 x、y 是集合上的两个符号串,则 xy iff(当且仅当)组成 x 的每一个符号和组成 y 的每一个符号依次
8、相等。(2)符号串的长度:x 为符号串,其长度|x|等于组成该符号串的符号个数。例:xSTV,|x|3 (3)符号串的联接:若 x、y 是定义在 是上的符号串,且 xXY,yYX,则 x 和 y的联接 xyXYYX 也是 上的符号串。注意:一般 xyyx,而 xx (4)符号串集合的乘积运算:令 A、B 为符号串集合,定义 AB xy|xA,yB(5)符号串集合的幂运算:有符号串集合 A,定义 A0=,A1=A,A2=AA,A3=AAA,AnAn-1A=AAn-1 ,n0(6)符号串集合的闭包运算:设 A 是符号串集合,定义 A A1 A2 A3 An 称为集合 A 的正闭包。A*A0 A 称
9、为集合 A 的闭包。例:A=x,y Ax,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A1 A2 A3 A*,x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A0 A1 A2 A3 为什么对符号、符号串、符号串集合以及它们的运算感兴趣?若 A 为某语言的基本字符集 Aa,b,z,0,1,9,+,/,(,),=B 为单词集 B=begin,end,if,then,else,for,则 B A*。语言的句子是定义在 B 上的符号串。若令 C 为句子集合,则 C B*,程序 C 2.3 文法的直观理解(1)什么是文法:文法是对语言结构的定义与描述。即从形式上用于描述和
10、规定语言结构的称为“文法”(或称为“语法”)。例:有一句子:“我是大学生”。这是一个在语法、语义上都正确定句子,该句子的结构(称为语法结构)是由它的语法决定的。在本例中它为“主谓结构”。如何定义句子的合法性?如何定义有穷语言、无穷语言?(2)语法规则:我们通过建立一组规则(产生式),来描述句子的语法结构。规定用“:”表示“由组成”或“定义为”。如::|:你|我|他:王民|大学生|工人|英语 :是|学习 :|(3)由产生式推导句子:有了一组产生式之后,可以按照一定的方式用它们去推导或产生句子。推导方法:从一个要识别的符号开始推导,即用相应产生式的右部来替代产生式的左部,每次仅用一条产生式去进行推
11、导。如:这种推导一直进行下去,直到所有带的符号都由终结符号替代为止。我 我是 我是 我是大学生 例:有一英语句子:The big elephant ate the peanut.:the:big :elephant:ate:peanut the the big the big elephant the big elephant the big elephant ate the big elephant ate the big elephant ate the the big elephant ate the peanut 上述推导可写成 the big elephant ate the pea
12、nut 说明:(1)有若干语法成分同时存在时,我们总是从最左的语法成分进行推导,这称之为最左推导,类似的有最右推导(一般推导)。(2)从一组产生式可推出不同的句子,如以上产生式还可推出“大象吃象”、“大花生吃象”、“大花生吃花生”等句子,它们 在语法上都正确,但在语义上都不正确。所谓文法是在形式上对句子结构的定义与描述,而未涉及语义问题。(4)语法树:我们用一种树型结构来描述一个句子的语法结构。称之为语法树。如:2.4 文法和语言的形式定义 2.4.1 文法的定义 文法定义:文法是产生式的有穷集合,通常定义为四元组:G=(VN,VT,P,Z)其中:VN:非终结符号集 VT:终结符号集 P:产生
13、式或规则的集合 Z:开始符号(识别符号),ZVN 注意:A.产生式:产生式是一个有序对(U,x),通常写为:U:=x 或 U x;|U|=1|x|0 B.非终结符号:出现在产生式的左部,且能推出符号或符号串的那些符号。其全体构成非终结符号集,记为 VN。C.终结符号:不出现在产生式的左部,且不能推出符号或符号串的那些符号。其全体构成终结符号集,记为 VT。且 VN VT ,VN VT V(V是文法的字母表)。例:无符号整数的文法:G=(VN,VT,P,E)VN,VT =0,1,2,3,9 P=;0;1;9;Z=;几点说明:产生式左边符号构成集合 VN,且 Z VN。有些产生式具有相同的左部,可
14、以合在一起。例:;|;0|1|2|3|9 给定一个文法,实际只需给出产生式集合,并指定识别符号。例:G:;|;0|1|2|3|9 2.4.2 推导与归约 直接推导定义:有文法 G 且有 v xUy,w xuy,其中 x、y V*,U VN,u V*,若 U:=uP,则说 v 直接推导出 w,记为 v w。若 x y ,有 U:=u,则说 U 直接推导出 u,记为 U u。换句话说,设 x 和 y 是 x 和 y 是符号串,若使用一次产生式可以从 x 变换出 y,则称 x直接推导出 y(或者说 y 是 x 的直接推导),记为 x y。例如:GN:N ND|D D 0|1|2|3|4|5|6|7|
15、8|9 N (1)ND(2)NDD(3)ND9(4)N09(5)N09(6)109 当 x 和 y 是符号串已没有非终结符号时,推导就必须终止。因为终结符不可能出现在产生式左部,所以将在产生式左部出现的符号称为非终结符号。推导定义:+推导:x 和 y 是 x 和 y 是符号串,若使用若干次产生式可以从 x 变换出 y,则称 x 推导出 y(或者说 y 是 x 的推导),记为 x y。或者说:若有直接推导序列:x U0 U1 U2 Uny,则 x y。例:N (1)ND (2)NDD (3)ND9 (4)N09 (5)N09 (6)109 则有:N 109。*推导:x 和 y 是 x 和 y 是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 文法 语言 概念 表示 27482
限制150内