第3章-文法和语言ppt课件.ppt
《第3章-文法和语言ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章-文法和语言ppt课件.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章: :文法和语言的概念和表示文法和语言的概念和表示v 3.0 概述概述v 3.1 形式语言基础形式语言基础v 3.2 文法的直观理解文法的直观理解v 3.3 文法和语言的定义文法和语言的定义v 3.4 文法的类型文法的类型v 3.5 语法树与二义性语法树与二义性v 3.6 句型的分析句型的分析3.0 3.0 概述概述 用高级语言编程比用低级语言方便,但要解决两个问题:用高级语言编程比用低级语言方便,但要解决两个问题:(1)(1)计算机怎样懂得高级语言程序,这就需要一个翻译程序实现从源程序到目计算机怎样懂得高级语言程序,这就需要一个翻译程序实现从源程序到目 标程序的转换。标程序的转
2、换。(2)(2)用什么方法来精确定义高级语言,即怎样精确描述高级语言。用什么方法来精确定义高级语言,即怎样精确描述高级语言。 要构造一个编译程序,应深刻理解被编译的源语言的结构(即词法和语法)要构造一个编译程序,应深刻理解被编译的源语言的结构(即词法和语法)及其含义(即语义),同时要弄清源语言的语法规则和语义规则是采用什么理及其含义(即语义),同时要弄清源语言的语法规则和语义规则是采用什么理论或什么方法来描述的。论或什么方法来描述的。 本章目的本章目的 为语言的语法描述寻求工具,该工具要对程序设计语言给出精为语言的语法描述寻求工具,该工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、
3、易读)确无二义的语法描述。(严谨、简洁、易读) 形式工具形式工具-形式语言抽象地定义为一个数学系统。形式语言抽象地定义为一个数学系统。 “形式形式”-:语言的所有规则只以符号串能出现的方式来陈述。:语言的所有规则只以符号串能出现的方式来陈述。 语言概述语言概述语言是由句子组成的集合,或说是由一组符号串所构成的集合。语言是由句子组成的集合,或说是由一组符号串所构成的集合。汉语汉语所有符合汉语语法的句子的全体所有符合汉语语法的句子的全体英语英语所有符合英语语法的句子的全体所有符合英语语法的句子的全体程序设计语言程序设计语言所有该语言的程序的全体所有该语言的程序的全体 每个句子构成的规律每个句子构成
4、的规律研究语言研究语言 每个句子的含义每个句子的含义 每个句子和使用者的关系每个句子和使用者的关系研究程序设计语言研究程序设计语言 每个程序构成的规律每个程序构成的规律 每个程序的含义每个程序的含义 每个程序和使用者的关系每个程序和使用者的关系语言研究的三个方面语言研究的三个方面 语法语法 Syntax 语义语义 Semantics 语用语用 Pragmatics语法语法 表示构成语言句子的各个记号之间的组合规律。表示构成语言句子的各个记号之间的组合规律。语义语义 表示各个记号的特定含义。(各个记号和记号所表示的对象之间表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)的关系)语
5、用语用 表示在各个记号所出现的行为中,它们的来源、使用和影响。表示在各个记号所出现的行为中,它们的来源、使用和影响。 每种语言具有两个可开始的特性,即语言的形式和该形式相关联的意每种语言具有两个可开始的特性,即语言的形式和该形式相关联的意义。义。 语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。这两个意义并非总是一样的,前者称为
6、语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。意义。幽默、双关语和谜语就是利用这两方面意义间的差异。 如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式形式”是指这是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法理论是对符号串集
7、合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。分析研究的基础。 任何语言均可看作一个集合。这个集合中的每个元素都是在任何语言均可看作一个集合。这个集合中的每个元素都是在一定符号集一定符号集(字母表)上的一个符号串(字母表)上的一个符号串。 对于自然语言来说,它们是定义在某个字母表上的对于自然语言来说,它们是定义在某个字母表上的句子的集合句子的集合。 对于程序语言来说,它们也是定义在某个字母表上的对于程序语言来说,它们也是定义在某个字母表上的句子句子的集合。的集合。这里这里的句子,就是一个源程序的句子,就是一个源程序。 通常,源程序是由关键字、标识符、常数、运算符以及一些界限
8、符组成。通常,源程序是由关键字、标识符、常数、运算符以及一些界限符组成。这些语法成分统称为单词或单词符号。这些语法成分统称为单词或单词符号。 单词符号是语言中具有独立意义的最基本单位。语言的单词符号是由词法单词符号是语言中具有独立意义的最基本单位。语言的单词符号是由词法规则所确定的,即词法规则规定了单词符号的形成规则。规则所确定的,即词法规则规定了单词符号的形成规则。 当我们表述一种语言时,无非是要说明这种语言的句子,如果语言只含当我们表述一种语言时,无非是要说明这种语言的句子,如果语言只含有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语有穷多个句子,则只需列出句子的有穷集就
9、行了,但对于含有无穷句子的语言来讲,就存在着如何给出它的有穷表示的问题。言来讲,就存在着如何给出它的有穷表示的问题。 以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明用这些规则来说明( (或者定义或者定义) )句子的组成结构,比如汉语句子可以是由主语句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语。后随谓语而成,构成谓语的是动词和直接宾语。“我是大学生我是大学生”。是汉语的一个句子。是汉语的一个句子 用语法来描述:用语法来描述:句子句子 =主语主语谓语谓语主语主语 =
10、代词代词名词名词代词代词 =我我你你他他名词名词 =王明王明大学生大学生工人工人英语英语谓语谓语 =动词动词直接宾语直接宾语动词动词 =是是学习学习直接宾语直接宾语 =代词代词名词名词 有了一组规则以后,按照如下方式用它们导出句子:开始去找有了一组规则以后,按照如下方式用它们导出句子:开始去找 =左端的带有左端的带有句子句子的规则并把它由的规则并把它由 =右端的符号串代替,这个动作表右端的符号串代替,这个动作表示成:示成: 句子句子 主语主语谓语谓语,然后在得到的串,然后在得到的串主语主语谓谓语语中,选取中,选取主语主语或或谓语谓语,再用相应规则的,再用相应规则的 =右端代替之。比右端代替之。
11、比如,选取了如,选取了主语主语,并采用规则,并采用规则主语主语 =代词代词, 那么得到:那么得到:主语主语谓语谓语 代词代词谓语谓语, 重复做下去,重复做下去, 句子:句子:“我是大学生我是大学生”的全部动作过程是:的全部动作过程是:句子句子 主语主语谓语谓语 代词代词谓语谓语 我我谓语谓语 我我动词动词直接宾语直接宾语 我是我是直接宾语直接宾语 我是我是名词名词 我是大学生我是大学生 “我是大学生我是大学生”的构成符合上述规则,而的构成符合上述规则,而“我大学生是我大学生是”不符合上不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否述规则,我们说它不是句子。这些规则成为我
12、们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。3.1 3.1 形式语言基础形式语言基础基本概念基本概念: :一、字母表和符号串一、字母表和符号串1.1.字母表:字母表:符号的非空有限集合符号的非空有限集合 例:例: = =aa,b b,cc2.2.符号:符号:字母表中的元素字母表中的元素 例:例: a a,b b,c c3.3.符号串:符号串:符号的有穷序列符号的有穷序列 例:例:a,
13、 aa, ac, abca, aa, ac, abc,. 特别地特别地, ,空符号串:空符号串:无任何符号的符号串无任何符号的符号串( () ) 符号串的形式定义符号串的形式定义 有字母表有字母表 ,定义:,定义: (1 1)是是 上的符号串;上的符号串; (2 2)若)若x x是是 上的符号串,且上的符号串,且a a ,则,则axax或或xaxa是是 上的符号串;上的符号串; (3 3)y y是是 上的符号串,上的符号串,iffiff(当且仅当)(当且仅当)y y可由(可由(1 1)和()和(2 2)产生。)产生。 4.4.符号串集合:符号串集合:由符号串构成的集合。由符号串构成的集合。二、
14、符号串和符号串集合的运算二、符号串和符号串集合的运算 5.5.符号串相等:符号串相等:若若x x、y y是集合上的两个符号串,则是集合上的两个符号串,则x xy yiffiff(当且仅当)组成(当且仅当)组成x x的每一个符号和组成的每一个符号和组成y y的的每一个每一个符号符号依次相等。依次相等。 6.6.符号串的长度:符号串的长度:x x为符号串,其长度为符号串,其长度|x|x|等于组成该符等于组成该符 号串的符号个数。号串的符号个数。 例:例: x xSTV STV , |x|=3|x|=3 特别地特别地, | =0, | =0例:例:Aa,b,B=c,d, AB= ? 8. 符号串集合
15、的乘积运算符号串集合的乘积运算:令:令A、B为符号串集合,定义为符号串集合,定义 AB xy |xA,yB ac,ad,bc,bd 因为因为xxx,所以,所以A= A =A 7. 7.符号串的联接:符号串的联接:若若x x、y y是定义在是定义在是上的符号串,且是上的符号串,且x xXYXY,y yYXYX,则,则x x和和y y的联接的联接 xyxyXYYXXYYX也是也是上的符号串。上的符号串。 注意:一般注意:一般xyyxxyyx,而,而xxxxx x 9. 方幂运算方幂运算:符号串集合的方幂符号串集合的方幂 符号串的方幂符号串的方幂 有任一符号串集合有任一符号串集合A,定义,定义 :
16、有任一符号串有任一符号串X,定义,定义:A0 =, X0 = A1=A, X1 = XA2=AA, X2=XXA3=AAA, X3=XXX AnAn-1A=AAn-1 Xn=XX X A A A n个个 n个个其中其中:n010.10.符号串集合的闭包运算:符号串集合的闭包运算:设设A A是符号串集合,定义是符号串集合,定义 A = A1 A2 A3 An 称为集合称为集合A A的的正则闭包正则闭包。 A* = A0 A1 A2 A3 An = A0 A 称为集合称为集合A A的的星闭包星闭包。例:例:A=x,y A? A* ?x,y, xx,xy,yx,yy , xxx,xxy,xyx,xy
17、y, A1 A2 A3, 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 * , 程序程序 C3.2文法的直观理解文法的直观理解1
18、.1.什么是文法:什么是文法: 文法是对语言结构的定义与描述。即从形式上用于描述文法是对语言结构的定义与描述。即从形式上用于描述和规定语言结构的称为和规定语言结构的称为“文法文法”(或称为(或称为“语法语法”)。)。 例:有一句子:例:有一句子:“我是大学生我是大学生” 。这是一个在语法、这是一个在语法、语义上都正确定句子,该句子的结构(称为语法结构)是由语义上都正确定句子,该句子的结构(称为语法结构)是由它的语法决定的它的语法决定的 。在本例中它为。在本例中它为“主谓结构主谓结构”。如何定义句子的合法性如何定义句子的合法性?有穷语言有穷语言无穷语言无穷语言 2.2.语法规则语法规则: 我们通
19、过建立一组规则(产生式),来描述句子我们通过建立一组规则(产生式),来描述句子的的语法结构语法结构。规定用。规定用“:=:=”表示表示“由由组成组成”。:=:= :=:=| := :=你你| |我我| |他他 :=:= 王民王民| |大学生大学生| |工人工人| |英语英语 :=:= :=:=是是| |学习学习 :=:=| 3.3.由产生式推导句子:由产生式推导句子: = = = 这种推导一直进行下去,直到所有带这种推导一直进行下去,直到所有带的符号都由终结符号的符号都由终结符号替代为止。替代为止。 有了一组产生式之后,可以按照一定的方式用它们去推导或有了一组产生式之后,可以按照一定的方式用它
20、们去推导或产生句子。产生句子。 推导方法:推导方法:从一个要开始的符号开始推导,即用相应产生式从一个要开始的符号开始推导,即用相应产生式的的右部右部来替代产生式的来替代产生式的左部左部,每次仅用一条产生式去进行推导。,每次仅用一条产生式去进行推导。 我我 我我 我我是是 我是我是 我是我是大学生大学生:=:= :=:=| := :=你你| |我我| |他他 :=:= 王民王民| |大学生大学生| |工人工人| |英语英语 :=:= :=:=是是| |学习学习 :=:=| 推导方法:推导方法:从一个要开始的符号从一个要开始的符号开始推导,即用相应产生式的开始推导,即用相应产生式的右部右部来替代产
21、生式的来替代产生式的左部左部,每,每次仅用一条产生式去进行推导。次仅用一条产生式去进行推导。例:例:给定给定一组语法规则,考一组语法规则,考察一个句子:察一个句子:“我是大学生我是大学生”的推导过程。的推导过程。例:有一英语句子:例:有一英语句子:The big elephant ate the peanut.:=:= :=:= := :=the :=:=big :=:=elephant :=:= :=:=ate :=:= := :=peanut = = = the = the big = the big elephant = the big elephant = the big elepha
22、nt ate = the big elephant ate = the big elephant ate the = the big elephant ate the peanut:=:= :=:= := :=the :=:=big :=:=elephant | peanut :=:= :=:=ate :=:= The big elephant ate the peanut.上述推导可写成上述推导可写成 = the big elephant ate the peanut+说明:说明: (1) 有若干语法成分同时存在时,我们总是从最左的语法成有若干语法成分同时存在时,我们总是从最左的语法成 分进
23、行推导,这称之为分进行推导,这称之为最左推导最左推导,类似的有,类似的有最右推导最右推导(一般推(一般推 导)。导)。 (2) 从一组产生式可推出不同的句子,如以上产生式还可推从一组产生式可推出不同的句子,如以上产生式还可推出出“大象吃象大象吃象”、“大花生吃象大花生吃象”、“大花生吃花生大花生吃花生”等句子,等句子,它们它们 在语法上都正确,但在语义上都不正确。在语法上都正确,但在语义上都不正确。 所谓所谓文法文法是在是在形式上形式上对句子结构的定义与描述,而未对句子结构的定义与描述,而未涉及涉及语义语义问题。问题。 4. 4.语法树语法树:我们用语法树来描述一个句子的语法结构。:我们用语法
24、树来描述一个句子的语法结构。Thebigelephantatethepeanut语法成分(在形式语法成分(在形式语言中又称语言中又称“非终非终结符结符”)单词符号(在形单词符号(在形式语言中又称式语言中又称“终结符号终结符号”)3.3.1文法的定义文法的定义3.3 3.3 文法和语言的形式定义文法和语言的形式定义 定义定义1: 文法文法G=(VN,VT,P,Z) VN :非终结符号集:非终结符号集 VT :终结符号集:终结符号集 P:产生式或规则的集合:产生式或规则的集合 Z:开始符号(识别符号):开始符号(识别符号) ZVNVVNVT称为文法的字汇表称为文法的字汇表产生式:产生式:U : x
25、U VN, xV*其中其中: 产生式:产生式:产生式是一个有序对产生式是一个有序对(U, x), 通常写为通常写为: U : x 或或U x; | U| = 1 |x| 0非终结符号:非终结符号:出现在产生式的左部出现在产生式的左部,且能推出符号或符号串的且能推出符号或符号串的那些符号。其全体构成非终结符号集,记为那些符号。其全体构成非终结符号集,记为VN 。终结符号:终结符号:不出现在产生式的左部不出现在产生式的左部,且不能推出符号或符号串且不能推出符号或符号串的那些符号。其全体构成终结符号集,记为的那些符号。其全体构成终结符号集,记为VT 。P = ; ; ; 00; 11; 99; Z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文法 语言 ppt 课件
限制150内