编译原理章课件.ppt
《编译原理章课件.ppt》由会员分享,可在线阅读,更多相关《编译原理章课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理章第1页,此课件共30页哦2.3 程序语言的语法描述程序语言的语法描述一、符号和符号串一、符号和符号串字母表字母表:字母表:字母表是符号元素的是符号元素的非空非空集合。集合。符号符号:字母表中的元素。:字母表中的元素。符号串符号串:字母表中的符号所组成的任何:字母表中的符号所组成的任何有穷有穷序列。序列。例如,若有字母表例如,若有字母表=a,b则则a,b是字母表是字母表中的元素中的元素(符号符号);a,b,aa,ab,ba都是符号串。都是符号串。注意:符号串中的注意:符号串中的符号与顺序有关,符号与顺序有关,ab和和ba是不同的是不同的符号串符号串特别定义特别定义:空符号串空符号串不含
2、任何符号的符号串,用不含任何符号的符号串,用 表示。表示。第2页,此课件共30页哦设有字母表=az,AZ,09,各种运算符和其它特殊符号,则,由这些字母表中的元素(符号)可以组成不同的符号串:Program example;Var sum,I:integer;Begin Sum:=0;For I:=1 to 10 do sum:=sum+I;12345:=sum;End.Write(sum=,sum);A=第3页,此课件共30页哦符号串的运算符号串的运算:符号串的连接(联结、乘积)符号串的连接(联结、乘积):符号串:符号串x和和y的连接是指的连接是指x和和y的符的符号按先后顺序排列在一起组成一
3、个新的符号串,用号按先后顺序排列在一起组成一个新的符号串,用xy表示。表示。例,若字母表例,若字母表=a,b,符号串符号串x=ab,y=ba则则xy=abba符号串的长度符号串的长度:符号串中符号的个数为符号串的长度。:符号串中符号的个数为符号串的长度。注意注意:(1)连接运算不满足交换律,即连接运算不满足交换律,即xyyx (2)任何符号串任何符号串x与空串与空串的的连连接都等于接都等于x,即即:x=x=x。若若ab是符号串,则是符号串,则|ab|表示符号串的长度。表示符号串的长度。|ab|=2同理:同理:|aabb|=4 注意:特别规定注意:特别规定|=0。若有两个符号串若有两个符号串x=
4、ab,y=cde那么,那么,|xy|=?5第4页,此课件共30页哦符号串的前缀与后缀符号串的前缀与后缀(头和尾头和尾):若有符号串若有符号串 z=xy(x,y是符号串是符号串),我我们称们称x为为z的前缀的前缀,y为为z的后缀。的后缀。例例z=abcd则:则:z的头有,的头有,,a,ab,abc,abcd z的尾有,的尾有,,d,cd,bcd,abcd符符 号号 串串 的的 幂幂 运运 算算:设设 X是是 一一 个个 符符 号号 串串,则则:X0=,X1=X,X2=XX,Xn=XX=Xn例:若有符号串例:若有符号串x=ab,则:则:x0=,x1=ab,x2=abab,x3=ababab显然,若
5、显然,若n0,则则Xn=XXn-1=Xn-1X。即:符号串的幂运算服从结合律即:符号串的幂运算服从结合律 第5页,此课件共30页哦符号串符号串集合集合的运算的运算:符号串集合的乘积运算:符号串集合的乘积运算:设设A、B为符号串集合(集合中各元为符号串集合(集合中各元素都是字母表上的字符串),两个字符串集合的乘积定义为:素都是字母表上的字符串),两个字符串集合的乘积定义为:AB=xy|xA,yB(笛卡儿乘积)笛卡儿乘积)设有字母表=a,b,c,d,令A=aa,bb,B=cc,dd则AB=aacc,aadd,bbcc,bbdd,BA=ccaa,ccbb,ddaa,ddbb。显然 AB BA,即符号
6、串集合乘积不满足交换律。注意:因注意:因x=x=x故,故,A=AA=A=A=A 特别定义:空符号串集合:特别定义:空符号串集合:空集合:空集合:=A=A=第6页,此课件共30页哦符号串集合的幂运算:符号串集合的幂运算:设设A为符号串集合,则集合的幂运算定为符号串集合,则集合的幂运算定义如下义如下:A0=A1=AA2=AAAn=AAAn个个=AAn-1=An-1A符号串集合的闭包:符号串集合的闭包:设设A为符号串集合,则集合的闭包定义如下为符号串集合,则集合的闭包定义如下:A的的正闭包正闭包:A+=A1A2A的的闭包:闭包:A*=A0A1A2设集合设集合A=a,b,则则 A+=a,b,aa,ab
7、,ba,bb,aaa,A*=,a,b,aa,ab,ba,bb,aaa,显然:显然:A*=A0A+A+=AA*第7页,此课件共30页哦二、上下文无关二、上下文无关文法文法(p26)文法文法(Grammar):是描述语言的语法结构的形式规则是描述语言的语法结构的形式规则(即语法规则)。(即语法规则)。The big monkey ate a banana.第8页,此课件共30页哦规则规则:规则又叫:规则又叫产生式产生式(production rule),它是语法,它是语法单位结构的一种表示,它引入了符号单位结构的一种表示,它引入了符号“:=:=”或或“”表示表示“由由组成组成”,上述句子的结构可以
8、表示如,上述句子的结构可以表示如下:下:the big ate a monkey banana第9页,此课件共30页哦句子的推导句子的推导:用规则:用规则(产生式产生式)按一定方式去推导或产按一定方式去推导或产生句子的过程。生句子的过程。the big ate a monkey banana The The big The big monkey The big monkey The big monkey ate The big monkey ate The big monkey ate a The big monkey ate a banana The big monkey ate a ban
9、ana第10页,此课件共30页哦语法树语法树(Parse Tree):句子结构的图形表示方式句子结构的图形表示方式monkeybigTheatebananaa第11页,此课件共30页哦归纳:什么是文法归纳:什么是文法 the big ate a monkey banana第12页,此课件共30页哦三、文法和语言的形式定义三、文法和语言的形式定义定义定义2 文法文法是一个四元组:是一个四元组:GS=(VN,VT,P,S)其中:其中:VN为非终结符集合;为非终结符集合;VT为终结符集合;为终结符集合;VNVT=,一般令一般令 V=VNVT,V中的符号称为文法符号;中的符号称为文法符号;(V字汇表)
10、字汇表)P为产生式集合;为产生式集合;P中的每个产生式写为:中的每个产生式写为:或或=。S为开始符号为开始符号(或称根符号,识别符号或称根符号,识别符号)。定义定义1 产生式产生式(或规则或规则)是一有序对是一有序对(A,),通常写为:,通常写为:A 或或A=其中其中A是一个符号作为产生式左部,是一个符号作为产生式左部,为有穷符号串作为产生式为有穷符号串作为产生式的右部,的右部,“”或或“=”表示表示“定义为定义为”或或“由由组成组成”。另外:另外:GS也可简写为也可简写为G 在规则左部出现的符号称为非终结符,它们的全体形成VN在规则中只在右部出现的符号称为终结符,它们的全体形成VT第13页,
11、此课件共30页哦例例 G1=(N,0,1,N0N,N1N,N0,N1,N)其中其中:非终结符非终结符 VN=N终结符终结符VT=0,1V=N,0,1 P=N0N,N1N,N0,N1开始符号开始符号S 为为N通常情况下,文法只用产生式集合表示:通常情况下,文法只用产生式集合表示:G1N:N0N N1N N0 N1第14页,此课件共30页哦定义定义3 符号串的符号串的推导与归约推导与归约:已给文法:已给文法G=(VN,VT,P,S),V=VNVT,令令x,y,V*,且且P,此时,由符号串此时,由符号串xy能能够直接产生出符号串够直接产生出符号串xy,我们称:我们称:符号串符号串xy是符号串是符号串
12、xy的的直接推导直接推导;符号串符号串xy是符号串是符号串xy的的直接归约直接归约;记作记作:xy xy 对于上例中文法:对于上例中文法:G1N:N0N N1N N0 N1存在以下直接推导:存在以下直接推导:N 1N 11xyxyx yx y若有若有1,2,nV*且且1 2 ,n-1 n则称则称n是是1的推导的推导记作:记作:1+n特别约定:若在推导关系特别约定:若在推导关系1n中允许中允许1=n,+则称则称n是是1 的广义推导记作的广义推导记作 1*nN+11N*N第15页,此课件共30页哦引用引用巴科斯范式巴科斯范式(BNF)表示文法:表示文法:对于具有相同左部的那些产生式,如:对于具有相
13、同左部的那些产生式,如:Ux,Uy,Uz可以缩写为:可以缩写为:Ux|y|z (“|”可理解为可理解为“或或”)(1)(2)(3)(4)0(5)1(6)2(7)3(8)4(9)5(10)6(11)7(12)8(13)9(1)(2)|(3)0|1|2|3|4|5|6|7|8|9|用此文法和直接推导的定义可以推导用此文法和直接推导的定义可以推导出任一无符号整数出任一无符号整数(56)5 56可表示为可表示为:+56第16页,此课件共30页哦 V*,则称则称为文法为文法G的句型的句型 VT*,则称则称为文法为文法G的句子的句子 文法文法G所对应的语言,记作所对应的语言,记作L(G)=|VT*,且且S
14、+例例:前面提到的文法前面提到的文法G=VN,VT,P,无符号整数无符号整数其中,其中,VT=0,1,2,3,4,5,6,7,8,9 VN=无符号整数,数字串,数字无符号整数,数字串,数字 P:0123456789 5 56 试给出该文法的句试给出该文法的句型、句子举例,并型、句子举例,并说明它所确定的语说明它所确定的语言。言。由此我们可以看出,文法和语言是密切相关的,根据文法由此我们可以看出,文法和语言是密切相关的,根据文法可以推导出任一句型和句子,而所有句子的集合则为该文可以推导出任一句型和句子,而所有句子的集合则为该文法所对应的语言,即法所对应的语言,即语言是所有句子构成的集合,它是所有
15、语言是所有句子构成的集合,它是所有终结符号串所组成的集合终结符号串所组成的集合VT*的子集的子集:L(G)VT*定义定义4 句型和句子句型和句子:设设G=(VN,VT,P,S)是一文法,若是一文法,若 S*那么,句型和句子的区别那么,句型和句子的区别是什么是什么?第17页,此课件共30页哦定义定义5 规范推导规范推导(归约归约):对于直接推导对于直接推导xy xy,如果如果y只包含只包含终结符号终结符号或为空符号串,那么就把这种直接推导称为规范或为空符号串,那么就把这种直接推导称为规范(最右最右)推推导,跟其对应的归约称为规范导,跟其对应的归约称为规范(最左最左)归约,且记作:归约,且记作:x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课件
限制150内