高级语言及其语法描述n.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《高级语言及其语法描述n.ppt》由会员分享,可在线阅读,更多相关《高级语言及其语法描述n.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 高级语言及其语法描述高级语言及其语法描述2.1 程序语言的定义及特性2.2 形式语言基础2.3 文法的直观理解2.4 文法和语言的定义2.5 文法的类型2.6 语法树与二义性2.7 有关文法的限制2.1 2.1 程序语言的定义及特性程序语言的定义及特性 显然,用高级语言编程比用低级语言来得方便,但要解决两个问题:显然,用高级语言编程比用低级语言来得方便,但要解决两个问题:(1).(1).计算机怎样懂得高级语言程序,这就需要一个翻译程序实现从源程序到目计算机怎样懂得高级语言程序,这就需要一个翻译程序实现从源程序到目 标程序的转换。标程序的转换。(2).(2).用什么方法来精确定义
2、高级语言,即怎样精确描述高级语言。用什么方法来精确定义高级语言,即怎样精确描述高级语言。要构造一个编译程序,应深刻理解被编译的源语言的结构(即词法和语法)要构造一个编译程序,应深刻理解被编译的源语言的结构(即词法和语法)及其含义(即语义),同时要弄清源语言的语法规则和语义规则是采用什么理及其含义(即语义),同时要弄清源语言的语法规则和语义规则是采用什么理论或什么方法来描述的。论或什么方法来描述的。1 1 程序语言的定义程序语言的定义 语法语法 语义语义 语用语用 任何语言均可看作一个集合。这个集合中的每个元素都是在一定符号集任何语言均可看作一个集合。这个集合中的每个元素都是在一定符号集(字母表
3、)上的一个符号串。(字母表)上的一个符号串。对于自然语言来说,它们是定义在某个字母表上的对于自然语言来说,它们是定义在某个字母表上的句子的集合句子的集合。对于程序语言来说,它们也是定义在某个字母表上的对于程序语言来说,它们也是定义在某个字母表上的句子句子的集合。这里的集合。这里的句子,就是一个源程序。的句子,就是一个源程序。通常,源程序是由关键字、标识符、常数、运算符以及一些界限符组成。通常,源程序是由关键字、标识符、常数、运算符以及一些界限符组成。这些语法成分统称为单词或单词符号。这些语法成分统称为单词或单词符号。单词符号是语言中具有独立意义的最基本单位。语言的单词符号是由词法单词符号是语言
4、中具有独立意义的最基本单位。语言的单词符号是由词法规则所确定的,即词法规则规定了单词符号的形成规则。规则所确定的,即词法规则规定了单词符号的形成规则。当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。来讲,存在着如何给出它的有穷表示的问题。以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,以自然语言为例,人们无法列出全部句子,但是人们可以
5、给出一些规则,用这些规则来说明用这些规则来说明(或者定义或者定义)句子的组成结构,比如汉语句子可以是由主语句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语。后随谓语而成,构成谓语的是动词和直接宾语。“我是大学生”。是汉语的一个句子 用语法来描述:句子=主语谓语主语=代词名词代词=我你他名词=王明大学生工人英语谓语=动词直接宾语动词=是学习直接宾语=代词名词 有了一组规则以后,按照如下方式用它们导出句子:开始去找=左端的带有句子的规则并把它由=右端的符号串代替,这个动作表示成:句子 主语谓语,然后在得到的串主语谓语中,选取主语或谓语,再用相应规则的=右端代替之。比
6、如,选取了主语,并采用规则主语=代词,那么得到:主语谓语 代词谓语,重复做下去,句子:“我是大学生”的全部动作过程是:句子 主语谓语 代词谓语 我谓语 我动词直接宾语 我是直接宾语 我是名词 我是大学生 “我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。语言概述语言概述语言是由句子组成的集合,是由一组符号所构成的集合。语言是由句子组成的集合,是由一组符号所构成的集合。汉语汉语所有符合汉语语法的句子的全体所有符
7、合汉语语法的句子的全体英语英语所有符合英语语法的句子的全体所有符合英语语法的句子的全体程序设计语言程序设计语言所有该语言的程序的全体所有该语言的程序的全体 每个句子构成的规律每个句子构成的规律研究语言研究语言 每个句子的含义每个句子的含义 每个句子和使用者的关系每个句子和使用者的关系研究程序设计语言研究程序设计语言 每个程序构成的规律每个程序构成的规律 每个程序的含义每个程序的含义 每个程序和使用者的关系每个程序和使用者的关系语言研究的三个方面语言研究的三个方面 语法语法 Syntax 语义语义 Semantics 语用语用 Pragmatics语法语法 表示构成语言句子的各个记号之间的组合规
8、律。表示构成语言句子的各个记号之间的组合规律。语义语义 表示各个记号的特定含义。即是一组规则,使用它表示各个记号的特定含义。即是一组规则,使用它可以定义语言的意义。(各个记号和记号所表示的对象之间可以定义语言的意义。(各个记号和记号所表示的对象之间的关系)的关系)语用语用 表示在各个记号所出现的行为中,它们的来源、使用表示在各个记号所出现的行为中,它们的来源、使用和影响。和影响。语语言言的的实实例例若若在在语语法法上上是是正正确确的的,其其相相关关联联的的意意义义可可以以从从两两个个观观点点来来看看,其其一一是是该该句句子子的的创创立立者者所所想想要要表表示示的的意意义义,另另一一是是接接收收
9、者者所所检检验验到到的的意意义义。这这两两个个意意义义并并非非总总是是一一样样的的,前前者者称称为为语语言言的的语语义义,后后者者是是其其语语用用意意义义。幽默、双关语和谜语就是利用这两方面意义间的差异。幽默、双关语和谜语就是利用这两方面意义间的差异。如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式形式”是指这是指这样的事实:语言的所有规则只以符号串能出现的方式来陈述。形式语言理论样的事实:语言的所有规则只以符
10、号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。研究的基础。2 高级语言的分类强制式语言(Imperative Language)/过程式语言 FORTRAN,C,Pascal应用式语言(Applicative Language)/函数式语言 LISP基于规则的语言(Rule-based Language)Prolog面向对象语言(Object-oriented Language)2.2 2.2 形式语言基础形式语言基础一、一、字母表和符号串字母表和符号串 字母表
11、字母表:符号的非空有限集合 例:=a,b,c 符号符号:字母表中的元素 例:a,b,c 符号串符号串:符号的有穷序列 例:a,aa,ac,abc,.空符号串空符号串:无任何符号的符号串()符号串的形式定义符号串的形式定义 有字母表,定义:(1)是上的符号串;(2)若x是上的符号串,且a,则ax或xa是上的符号串;(3)y是上的符号串,iff(当且仅当)y可由(1)和(2)产生。符号串集合符号串集合:由符号串构成的集合。二、二、符号串和符号串集合的运算符号串和符号串集合的运算 1.符号串相等符号串相等:若x、y是集合上的两个符号串,则xyiff(当且仅当)组成x的每一个符号和组成y的每一个每一个
12、符号依次相等。2.符号串的长度符号串的长度:x为符号串,其长度|x|等于组成该符 号串的符号个数。例:xSTV,|x|=3例:Aa,b,B=c,d,AB=?4.符号串集合的乘积运算符号串集合的乘积运算:令A、B为符号串集合,定义 AB xy|xA,yB ac,ad,bc,bd 因为xxx,所以A=A=A 3.3.符号串的联接符号串的联接:若x、y是定义在是上的符号串,且xXY,yYX,则x和y的联接 xyXYYX也是上的符号串。注意:一般xyyx,而xx6.6.符号串集合的闭包运算符号串集合的闭包运算:设A是符号串集合,定义 A A1 A2 A3 An 称为集合A的正闭包。A*A0 A称为集合
13、A的闭包。例:A=x,y A?A*?5.符号串集合的幂运算符号串集合的幂运算:有符号串集合A,定义A0=,A1=A,A2=AA,A3=AAA,AnAn-1A=AAn-1 ,n0 x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,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
14、 A*。语言的句子是定义在B上的符号串。若令C为句子集合,则C B*,程序 C2.3 文法的直观理解文法的直观理解 1.什么是文法:文法是对语言结构的定义与描述。即从形式上用于描述和规定语言结构的称为“文法”(或称为“语法”)。例:有一句子:“我是大学生”。这是一个在语法、语义上都正确定句子,该句子的结构(称为语法结构)是由它的语法决定的。在本例中它为“主谓结构”。如何定义句子的合法性?有穷语言无穷语言 2.2.语法规则语法规则:我们通过建立一组规则(产生式),来描述句子的语法结构结构。规定用“:=”表示“由组成”。:=:=|:=你|我|他:=王民|大学生|工人|英语:=:=是|学习:=|3.
15、由产生式推导推导句子:有了一组产生式之后,可以按照一定的4.方式用它们去推导或产生句子。推导方法:从一个要识别的符号开始推导,即用相应产生式的右部来替代产生式的左部,每次仅用一条产生式去进行推导。=这种推导一直进行下去,直到所有带的符号都由终结符号替代为止。=我=我=我是=我是=我是大学生:=:=:=:=|:=:=你你|我我|他他:=:=王民王民|大学生大学生|工人工人|英语英语:=:=:=:=是是|学习学习:=:=|推导方法:推导方法:从一个要识别的符号开始推导,即用相应产生式的右部来替代产生式的左部,每次仅用一条产生式去进行推导。例:有一英语句子:The big elephant ate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言 及其 语法 描述
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内