编译原理前后文无关文法和语言精选PPT.ppt
《编译原理前后文无关文法和语言精选PPT.ppt》由会员分享,可在线阅读,更多相关《编译原理前后文无关文法和语言精选PPT.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理前后文无关文法和语言第1页,此课件共51页哦本本章章内内容容2.1语言的概述语言的概述2.2文法和语言的定义文法和语言的定义第2页,此课件共51页哦2.1语言的概述语言的概述u什么是语言什么是语言自然语言自然语言(NaturalLanguage)是人与人的通讯工具是人与人的通讯工具语义语义(Semantics):环境、背景知识、语气、二义环境、背景知识、语气、二义性性难以形式化难以形式化计算机语言计算机语言(ComputerLanguage)计算机系统间、人机间通讯工具计算机系统间、人机间通讯工具严格的语法严格的语法(Grammar)、语义、语义(Semantics)易于易于形式化:严
2、格形式化:严格语言是用来交换信息的工具语言是用来交换信息的工具功能性描述功能性描述第3页,此课件共51页哦2.1语言概述语言概述u语言的描述方法语言的描述方法现状现状自然语言自然语言:自然、方便:自然、方便-非形式化非形式化数学语言数学语言(符号):严格、准确(符号):严格、准确-形式形式化化形式化描述形式化描述高高度度的的抽抽象象,严严格格的的理理论论基基础础和和方方便便的计算机表示。的计算机表示。第4页,此课件共51页哦2.1语言概述语言概述u语言语言形式化的内容提取形式化的内容提取单词单词(Token):满足一定规则字符:满足一定规则字符(Character)串串句子句子(Sentenc
3、e):满足一定规则单词序列:满足一定规则单词序列语言语言(Language):满足一定条件的句子集合:满足一定条件的句子集合u语言是字和组合字的规则语言是字和组合字的规则结构性描述结构性描述例:一译开天第课今始编节上例:一译开天第课今始编节上今天开始上第一节编译课今天开始上第一节编译课第5页,此课件共51页哦u程序设计语言程序设计语言形式化的内容提取形式化的内容提取程序设计语言程序设计语言(ProgrammingLanguage):组成:组成程序程序的所有语句的集合的所有语句的集合程序程序(Program):满足语法规则的语句序列:满足语法规则的语句序列语句语句(Sentence):满足语法规
4、则的单词序列:满足语法规则的单词序列单词单词(Token):满足词法规则的字符串:满足词法规则的字符串u例例变量变量=表达式表达式if条件条件then语句语句while条件条件do语句语句call过程名过程名(参数表参数表)2.1语言概述语言概述第6页,此课件共51页哦u语言描述形式语言描述形式文法文法语法语法语句语句语句语句的的组成规则组成规则描述方法:描述方法:BNF(巴科斯范式:巴科斯范式:BackusNormalForm )范式范式、语法语法(描述描述)图图词法词法单词单词单词单词的组成规则的组成规则描述方法:描述方法:BNF范式范式、正规式正规式2.1语言概述语言概述第7页,此课件共
5、51页哦u遗憾的是,对于遗憾的是,对于自然语言自然语言来说,目前尚无能够完全刻划一语言全来说,目前尚无能够完全刻划一语言全部句子的结构的方法。部句子的结构的方法。u然而,对大多数然而,对大多数程序设计语言程序设计语言来说,此问题已被解决。来说,此问题已被解决。1960年,年,P.Naur&J.Backus(巴科斯巴科斯-瑙尔瑙尔)首先用)首先用BNF(Backus-Naur-Formal(范式)对(范式)对ALGOL语言进行了描述。应指出,语言进行了描述。应指出,BNF成功地成功地解决了程序设计语言的语法描述问题解决了程序设计语言的语法描述问题,但描述其语义,但描述其语义,还必须借助自然语言。
6、还必须借助自然语言。复习:巴科斯范式复习:巴科斯范式(BNF-BackusNormalForm)第8页,此课件共51页哦通常,可用如下方式表示或定义一种语言:通常,可用如下方式表示或定义一种语言:(1)若语言的句子)若语言的句子有限时有限时,可用,可用枚举法枚举法。例如,只含两个句子的语言:例如,只含两个句子的语言:“Iamateacher”,“Youarestudents”;(2)制定)制定有限条规则有限条规则有限条规则有限条规则,用于产生所要描述的语言的全部句,用于产生所要描述的语言的全部句子(可无限多),这些规则构成了该语言的文法。子(可无限多),这些规则构成了该语言的文法。(3)建立一
7、种)建立一种装置(算法或过程)装置(算法或过程)装置(算法或过程)装置(算法或过程),它以某字母表上的符它以某字母表上的符号串为输入,判别该符号串是否为所描述语言的句子。此装号串为输入,判别该符号串是否为所描述语言的句子。此装置称为置称为自动机。自动机。第9页,此课件共51页哦巴科斯范式巴科斯范式 (BNFBNF )例子:例子:1.1.The big elephant ate the peanut.(The big elephant ate the peanut.(大象吃花生大象吃花生)2.2.The little boy ran quickly.(The little boy ran qui
8、ckly.(小男孩跑得快)小男孩跑得快)3.3.The man has a dog.(The man has a dog.(这人有一条狗)这人有一条狗)以上都是符合英语语法规则的句子,即它们是在以上都是符合英语语法规则的句子,即它们是在英语英语语法规则语法规则中成立的中成立的句子句子。如何描述一个给定的如何描述一个给定的句子句子在给定规则下是否成立呢?在给定规则下是否成立呢?第10页,此课件共51页哦句子句子=主语主语谓语谓语主语主语=冠词冠词形容词形容词名词名词冠词冠词=the形容词形容词=big谓语谓语=动词动词宾语宾语动词动词=ate宾语宾语=冠词冠词名词名词名词名词=elephant|
9、peanut我们把这种描述语法规则方法称巴科斯范式,也称我们把这种描述语法规则方法称巴科斯范式,也称巴科巴科斯斯-瑙尔范式瑙尔范式(BackusNormalForm),简称,简称BNF。那么上面叙述那么上面叙述的的语法规则语法规则可写为:可写为:第11页,此课件共51页哦步骤步骤推导推导所用规则所用规则1谓语谓语2形容词形容词名词名词谓语谓语3the形容词形容词名词名词谓语谓语4thebig名词名词谓语谓语5thebigelephant谓语谓语6thebigelephant动词动词7thebigelephantate8thebigelephantate冠词冠词9thebigelephantat
10、ethe10thebigelephantatethepeanut可见句子可见句子thebigelephantatethepeanut成立成立。当然我们还可以推导出其它的句子,如当然我们还可以推导出其它的句子,如thebigpeanutatetheelephant,在这里,在这里,我们只考虑句子的我们只考虑句子的语法语法,而不考虑句子的,而不考虑句子的语义语义。根据以上根据以上根据以上根据以上规则规则规则规则,可以,可以,可以,可以推导推导推导推导出句子出句子出句子出句子 The big elephant ate The big elephant ate the peanut.the peanu
11、t.过程如下过程如下过程如下过程如下:第12页,此课件共51页哦用用巴科斯范式巴科斯范式描述描述语言语言能给研究问题带来很大方便。能给研究问题带来很大方便。如下面如下面9个句子都是正确的:个句子都是正确的:WeranHeranIranWeateHeateIateWesatHesatIsat如果我们用巴科斯范式来描述上面如果我们用巴科斯范式来描述上面9个句子只要个句子只要几条规则几条规则就行了。就行了。句子句子=主语主语谓语谓语主语主语=We|He|I谓语谓语=ran|ate|sat可见,如果一个语言有可见,如果一个语言有无穷多个句子无穷多个句子,那么用上述规则来描,那么用上述规则来描述更有实际
12、意义述更有实际意义.它用它用一组规则一组规则来代替来代替枚举法枚举法,用,用有穷来描述无限有穷来描述无限。第13页,此课件共51页哦2.2文法和语言的定义文法和语言的定义本节主要内容本节主要内容基本概念和术语(字母表,符号串等);基本概念和术语(字母表,符号串等);规则;规则;文法的定义;文法的定义;推导;推导;句型与句子;句型与句子;文法和语言的等价转换等文法和语言的等价转换等第14页,此课件共51页哦2.2.1 2.2.1 基本概念和术语基本概念和术语1。字母表(符号表、符号集)字母表(符号表、符号集)由若干元素(符号、字母)由若干元素(符号、字母)组成的有限非空集合。组成的有限非空集合。
13、2。符号串符号串用字母表中符号所组成的任何有限序列。用字母表中符号所组成的任何有限序列。符号串的长度符号串的长度=符号串中所含符号的个数符号串中所含符号的个数例:例:aba的长度为的长度为3。记为:。记为:|aba|=3 空串空串不含任何符号的符号串,记为不含任何符号的符号串,记为。显然,。显然,|=0。本课约定本课约定用用A、B、C、等表示字母表或符号串集;用等表示字母表或符号串集;用a,b,c,S,T,U等等表示符号;用表示符号;用s,t,u,x,y,z,等表示符号串。等表示符号串。3。符号串的前(后)缀及子串符号串的前(后)缀及子串设设,,x是符号串,若是符号串,若x=,则称,则称 是是
14、x的的子串子串;特别地,当特别地,当=(=)时,称)时,称 是是x的的前(后)缀前(后)缀。第15页,此课件共51页哦2.2.1 基本概念和术语4。符号串的连接和方幂符号串的连接和方幂 连接连接 设设x,y是符号串,将是符号串,将y直接地拼接到直接地拼接到x之后所得的新符之后所得的新符号串称为号串称为x与与y的连接,记为的连接,记为xy 注意,一般说来,注意,一般说来,xy 不等于不等于 yx;但;但 x=x =x 方幂方幂 符号串符号串x与其自身的与其自身的n-1次连接称为次连接称为x的的n次方幂,记为次方幂,记为第16页,此课件共51页哦2.2.1 基本概念和术语5。符号串集合的和与积符号
15、串集合的和与积设设A,B为两个符号串之集,定义为两个符号串之集,定义和和A+B(或(或A B)=w|w A,或,或 w B积积AB(或(或 AB)=xy|x A,y B显然,显然,A+=+A=A;A=A=;A=A=A6。符号串集的方幂与闭包符号串集的方幂与闭包第17页,此课件共51页哦例例0,1+=0,1,00,01,11,000,001,010,011,100,a,b,c,d+=a,b,c,d,aa,ab,ac,ad,ba,bb,bc,bd,aaa,aab,aac,aad,aba,abb,abc 例例0,1*=,0,1,00,01,11,000,001,010,011,100,a,b,c,d
16、*=,a,b,c,d,aa,ab,ac,ad,ba,bb,bc,bd,aaa,aab,aac,aad,aba,abb,abc,第18页,此课件共51页哦2.2.1 基本概念和术语u当我们把字母(符号)表视为由长度为当我们把字母(符号)表视为由长度为1的符号串构成的符的符号串构成的符号串集时,就可定义字母表上的号串集时,就可定义字母表上的连接、积、方幂连接、积、方幂等运算。等运算。u例例A=a,b,c第19页,此课件共51页哦2.2.2 文法和语言的形式定义 我们从我们从“产生语言产生语言”的角度出发的角度出发,讨论讨论文法和语言的形式定义文法和语言的形式定义。u产生语言产生语言指制定出有限条规
17、则,指制定出有限条规则,借助它们就能产生出些语言的句子。借助它们就能产生出些语言的句子。u我们以几个英语句子构成的语言为例进行讨我们以几个英语句子构成的语言为例进行讨论。并设每个句子都是论。并设每个句子都是“主主-谓谓-宾宾”结构。结构。u语法规则见右。其中,每个用语法规则见右。其中,每个用括起来的括起来的部分是所要定义语言中的一个部分是所要定义语言中的一个语法实体语法实体(称为语法单位、语法结构、语法范畴、(称为语法单位、语法结构、语法范畴、语法变量等)。语法变量等)。“:=:=”是用于定义语是用于定义语法结构的符号,其含义(并读作)法结构的符号,其含义(并读作)“定义为定义为”。语法规则也
18、称为产生式语法规则也称为产生式(Production)Production):=the:=:=:=monkey:=banana:=eat:=has:=the:=a第20页,此课件共51页哦 现在,我们讨论如何用上述规则现在,我们讨论如何用上述规则推导推导出相应语言的全出相应语言的全部部句子句子。u推导推导:从语言最大的一个:从语言最大的一个语法范畴语法范畴(本例中是(本例中是 )开始,反)开始,反复用语法规则中复用语法规则中“:=:=”右侧的符号串取代其左侧符号,直到所得的右侧的符号串取代其左侧符号,直到所得的符号串中不再含有可被替换符号串中不再含有可被替换语法范畴语法范畴。每次替换称为一步(
19、直接)。每次替换称为一步(直接)推导推导,并用符号,并用符号“”表示。表示。例如,我们首先用规则例如,我们首先用规则进行第一步推导进行第一步推导(derivationderivation),就可得到,就可得到 ,记为:记为:所得的符号串所得的符号串 含有两个含有两个语法范畴语法范畴,可对其中任,可对其中任一个(例如对一个(例如对 )进行新的)进行新的推导推导(替换):(替换):u重复上述过程,可得到一个推导序列(见下页)。重复上述过程,可得到一个推导序列(见下页)。第21页,此课件共51页哦用语法规则进行推导所得的推导序列推导步骤推导步骤所用规则所用规则所得的符号串所得的符号串1 2 3 th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 前后文 无关 文法 语言 精选 PPT
限制150内