编译原理课件第2章(2).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)
《编译原理课件第2章(2).ppt》由会员分享,可在线阅读,更多相关《编译原理课件第2章(2).ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前述内容回顾前述内容回顾 编译程编译程序序 编译方式与解释方式的根本区编译方式与解释方式的根本区别别 编译程序的工作过程编译程序的工作过程 编译程序的结构编译程序的结构 编译程序的组织方式编译程序的组织方式 编译程序的构造编译程序的构造第二章第二章 文法和语言的基本知识文法和语言的基本知识 本章主要介绍形式语言理论中的一些最本章主要介绍形式语言理论中的一些最基本的概念和基础知识,它是学习以后各章基本的概念和基础知识,它是学习以后各章节的基石。节的基石。本章内容简介本章内容简介 文法的形式定义文法的形式定义 语言的形式定义语言的形式定义 为语言构造文法与由文法推出语为语言构造文法与由文法推出语言
2、言 语法树及文法的二义性语法树及文法的二义性 文法和语言的分类文法和语言的分类 文法的实用限制文法的实用限制形式语言理论形式语言理论 由由ChomskyChomsky于于19561956年首先提出。年首先提出。是指由数学方法是指由数学方法形式化方法形式化方法研究自然语言(如英研究自然语言(如英语)和人工语言(如程序设计语言)的语法的理论。语)和人工语言(如程序设计语言)的语法的理论。目前在自然语言的翻译、计算机语言的描述和转换、目前在自然语言的翻译、计算机语言的描述和转换、编译程序的构造、模式识别等方面有广泛的应用。编译程序的构造、模式识别等方面有广泛的应用。2.1 2.1 语言成分的基本概念
3、语言成分的基本概念 一个语言的成分包括字母表(一个语言的成分包括字母表(AlphabetAlphabet),文法(文法(rammarrammar)以及它的语义。以及它的语义。字母表字母表是符号的有穷集,而符号构成了语言中的句子。是符号的有穷集,而符号构成了语言中的句子。语法语法是结构规则的有穷集,这些规则定义了句子中符号的是结构规则的有穷集,这些规则定义了句子中符号的合法上下文。合法上下文。语义语义通常是操作规则的有穷集,这些规则定义了用该语言通常是操作规则的有穷集,这些规则定义了用该语言编写的任何程序在某个计算机上执行的操作性效果。编写的任何程序在某个计算机上执行的操作性效果。字母表中的字母
4、表中的元素元素称为符号。称为符号。1.1.字母表字母表字母表是元素的字母表是元素的有穷非空有穷非空的集合。的集合。例如例如 a a,b b,y y,zz,00,11等。等。2.2.1 2.2.1 字母表与符号串字母表与符号串常用常用 来表示来表示 。注意:注意:字母表中至少包含一个元素。元素可以是字母、数字字母表中至少包含一个元素。元素可以是字母、数字或其他符号。或其他符号。字母表中的元素称为字母表中的元素称为符号符号。符号串符号串是字母表中的符号所组成的任何是字母表中的符号所组成的任何有穷序列有穷序列,通常用小写的字,通常用小写的字母表示。母表示。例:例:0,1 0,1 则则 0000,11
5、11,0101,1010,010.010.是符号串。是符号串。注意:注意:1 1)不包含任何符号的符号串为)不包含任何符号的符号串为空串空串,记为,记为。2 2)符号串中的符号顺序很重要。)符号串中的符号顺序很重要。ababbaba 3 3)符号串)符号串x x中有中有m m个符号,则个符号,则|x|=m m|x|=m m是长度。是长度。字母表与符号串字母表与符号串2.2.符号、符号、符号串及其运算符号串及其运算(P9)(P9)2.2.2符号串运算符号串的连接符号串的连接 设设x和和y是符号串,则称是符号串,则称xy是他们的连接。是他们的连接。例如:例如:x=abc,y=1a 则则 xy=ab
6、c1a,yx=1aabc 即即|x|=3,|y|=2,|xy|=3+2=5注意:对任意一个符号串注意:对任意一个符号串x 我们有我们有x=x=x符号串集合的乘积符号串集合的乘积设设A和和B是符号串的集合,则是符号串的集合,则A和和B的乘积定义为的乘积定义为AB=xy|x A,y B例如:例如:A=a,b B=c,d 则则AB=ac,ad,bc,bd集合的乘积是满足于集合的乘积是满足于x A,y B 的所有符号串的所有符号串xy所构成的集合。所构成的集合。注意:注意:1、对于任何集合、对于任何集合A,有有A=A=A2、=符号串的方幂符号串的方幂设设x是符号串,是符号串,xn 是是x自身连结自身连
7、结n次。并且次。并且x0 则 x1 x x2 xx xn xxx=x xn-1 n个个例如例如,设 x=abc,则,则 x1 abc x2 abcabc 符号串集合的方幂符号串集合的方幂A是符号串的集合,是符号串的集合,An 是集合是集合A自身自身n次相乘,次相乘,并且并且A0 则 A1 A A2 AA An AAA=A An-1 (n0)n个个A例例1 A=a,b A0 A1 a,b A2 aa,ab,ba,bb A3 aa,ab,ba,bb a,b aaa,aab,aba,abb,baa,bab,bba,bbb 符号串集合的正闭包符号串集合的正闭包A+与与 闭包闭包A*A是集合A的正闭包
8、A A1 A2 AnA的闭包 A*A0 A1 A2 An A+A=a,bA a,b,aa,ab,ba,bb,aaa,aab,.A*,a,b,aa,ab,ba,bb,aaa,aab,.A表示表示A上元素上元素a,b构成的所有符号串的集合。构成的所有符号串的集合。VTVN=2.2.3.1 3.1 文法的有关概念文法的有关概念 2 2非终结符号非终结符号 非非终终结结符符号号用用来来表表示示语语言言的的语语法法成成分分(或或语语法法范范畴畴、语语法法单单位位),例例如如“赋赋值值语语句句”。非非终终结结符符号号所所形形成成的的集集合合记记为为V VN N。一一般用大写字母来表示。般用大写字母来表示。
9、1 1终结符号终结符号 终结符号是组成语言的基本符号,如保留字、标识符、常数、终结符号是组成语言的基本符号,如保留字、标识符、常数、运算符、界限符等。终结符号是语言的不可再分的基本符号。终运算符、界限符等。终结符号是语言的不可再分的基本符号。终结符号形成的集合记为结符号形成的集合记为V VT T。一般用小写字母表示。一般用小写字母表示。2.3 文法和语言的形式定义文法和语言的形式定义假如有若干条规则有相同的左部,通常写作:假如有若干条规则有相同的左部,通常写作:1 1|2 2|n nn称为称为的的候选式候选式 产产生生式式是是用用来来定定义义一一个个语语法法成成分分的的。它它描描述述了了一一个
10、个语语法法成成分分的的形成规则形成规则。例如标识符的构成规则可描述为:。例如标识符的构成规则可描述为:|3 3产生式产生式:产生式(产生式(规则规则)是一个有序对()是一个有序对(,),),通常写作通常写作 (或或=)其其中中称称为为产产生生式式的的左左部部,称称为为产产生生式式的的右右部部。(V(VT TVVN N)+,(V(VT TVVN N)*。2.3 文法和语言的形式定义文法和语言的形式定义例如:1)2)3)4)5)man|car 6)the 7)driveThe man drive the carThe car drive the man 一组规则规定一个语言一组规则规定一个语言Th
11、e car drive the car 的语法结构的语法结构The man drive the manV VT T终结符号终结符号集。集。文法文法G G是一个四元组,是一个四元组,GS=GS=(V VT T,V VN N,P P,S S)。)。文法是产生式的文法是产生式的有穷非空有穷非空的集合。的集合。V VN N非终结符号非终结符号集。集。S S 开始符号开始符号。至少要在一条产生式中作为左部出现。至少要在一条产生式中作为左部出现。P P 表示产生式的表示产生式的有穷非空有穷非空的集合。的集合。2.2.3.23.2文法的形式定义文法的形式定义 GG =(A,B,Y,Z,0,1,9A,B,Y,
12、Z,0,1,9,,,P P,)P P 定义为:定义为:|A|B|C|D|E|F|G|U|V|W|X|Y|ZA|B|C|D|E|F|G|U|V|W|X|Y|Z 0|1|2|3|4|5|6|7|8|9 0|1|2|3|4|5|6|7|8|9 例例1 1 定义标识符的文法定义标识符的文法2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念1.1.直接推导直接推导 如如果果 是是文文法法G G的的一一条条产产生生式式,而而,是是(VTVN)*中中任任意意一一个个符符号号串串,则则将将 作作用用于于符符号号串串 上上得得到到符符号号串串 ,称称符符号串号串 是符号串是符号串 的的直接推导直接
13、推导,记为,记为 直直接接推推导导的的逆逆过过程程称称为为直直接接归归约约,即即由由符符号号串串 可可直直接接归归约约到到 。直接推导举例直接推导举例 E E+T|T T T*F|F F(E)|i E E+T|T T T*F|F F(E)|i*T F例例1 文法文法GE:*T F*T*F F例例2 见见P14 2.2.推导推导 设设0 0、1 1、n n均为均为(V VT TVVN N)*中的符号串,且有中的符号串,且有 0 01 12 2n-1n-1n n则称以上序列是则称以上序列是长度为长度为n n的推导的推导,即,即0 0可经过可经过n n步推导得到步推导得到n n。显然,这里显然,这里
14、n n1,1,当当n=1,n=1,就是直接推导。就是直接推导。当当n=0n=0时,时,0 0=n .n .当当n n0 0,我们称为,我们称为广义推导广义推导。推导的逆过程称为推导的逆过程称为归约归约,即,即n n可归约到可归约到0 0 。2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念 如如果果在在某某个个推推导导过过程程中中的的任任何何一一步步直直接接推推导导中中,都都是是对对符符号号串串的的最最左左(右右)非非终终结结符符号号进进行行替替换换,则则称称其其为为最最左左(右右)推推导导。最最右右推推导导又又叫叫
15、做做规规范范推推导导。规规范范推推导导的的逆过程(最左规约)称为逆过程(最左规约)称为规范规约规范规约。3.3.最左推导和最右推导最左推导和最右推导【例例1】设有文法设有文法GN1:N1N NND D D0 1 2=N2=ND=NN1=D2=12 最右推导最右推导=DD=ND=NN1=1D=12 最左推导最左推导=DD=ND=NN1=D2=12 不是最左推导不是最左推导 也不是最右推导也不是最右推导=T*F-i=(E+i)*i-i=F*i-i=(E+T)*i-i=(E)*i-i=(E+F)*i-i=(T+i)*i-F=(F+i)*i-F=(i+i)*i-i=T-i=E-i=E-F=E-TE【例
16、例2】设有文法设有文法GE:EE+T E-T T TT*F T/F F F(E)i请写出字符串请写出字符串(i+i)*i-i 最右推导最右推导=T*i-i,且,且 u u(V(VT TVVN N)*则称符号串则称符号串u u5.5.句子句子 设有文法设有文法GS,如果如果,且,且 u VT*,则称符号串则称符号串u u为为文法文法GS的的句子句子。由此可看出:由此可看出:句型包含句子句型包含句子 S S*u u2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念 P15P154.4.句型句型 设有文法设有文法GGS S,如果如果S S*u u为文法为文法GSGS的句型的句型。由规范
17、推导由规范推导(最右推导最右推导)得到的句型称为得到的句型称为规范句型规范句型.【例例1】设有文法设有文法GS:S01 0S1S,01,0S1,00S11,000111 都是句型。都是句型。01和和000111 又是句型。又是句型。S=0S1=01 S =00S11 =000111=T*F-i=(E+i)*i-i=F*i-i=(E+T)*i-i=(E)*i-i=(E+F)*i-i=(T+i)*i-F=(F+i)*i-F=(i+i)*i-i=T-i=E-i=E-F=E-TE【例例2】设有文法设有文法GE:EE+T E-T T TT*F T/F F F(E)I证明:字符串证明:字符串(i+i)*i
18、-i 是文法是文法GE的的句子句子字符串字符串(i+i)*i-i 是是 句子句子方框里面的字符串是方框里面的字符串是 句型句型=T*i-i2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念6.6.语言语言 文法文法GSGS产生的所有句子的集合称为产生的所有句子的集合称为G G所定义的所定义的语言语言,记为,记为L L(GSGS),且且u u V VT T*L L(GSGS)=u|=u|S S+u u=由此可知:由此可知:1 1)当文法给定,语言也就确定。当文法给定,语言也就确定。2 2)L(G)L(G)是是V VT T*的子集,即属于的子集,即属于V VT T*的符号串的符号串x
19、 x不一定属于不一定属于L(G)L(G)2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念 P17P17 如如果果文文法法的的产产生生式式呈呈UUUU形形式式,则则称称其其为为规规则则递递归归,也也称称直接递归。(直接递归。(U U为非终结符)为非终结符)如果文法中有推导如果文法中有推导 U UU U,则称其为则称其为文法递归,文法递归,也称也称间接递归间接递归。7 7 直接递归与间接递归直接递归与间接递归所谓递归即,所谓递归即,规则的左部或右部具有相同的非终结符。规则的左部或右部具有相同的非终结符。2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念如果文法的产生式
20、呈如果文法的产生式呈 UU UU 的形式,则称其为的形式,则称其为 规则左递归。规则左递归。如果文法的产生式呈如果文法的产生式呈 UUUU 的形式,则称其为的形式,则称其为 规则右递归。规则右递归。规则左规则左(右右)递归,也称直接左递归,也称直接左(右右)递归。递归。8.8.规则左递归与规则右递归规则左递归与规则右递归 如果文法中有推导如果文法中有推导 U UU U,则称其为文法则称其为文法左左递归,也称递归,也称间接间接左左递归。递归。如果文法中有推导如果文法中有推导 U UU U,则称其为文法则称其为文法右右递归,也称递归,也称间接间接右右递归。递归。9.9.文法左递归与文法右递归文法左
21、递归与文法右递归 递归举例递归举例 G1S:SSa|Ab|b|c ABc|a BSb|b G2S:Sa|aTb TS,T|S 直接左递归直接左递归直接右递归直接右递归 G3S:SAa|c ABc|a BSb|b间接左递归间接左递归文法递归的作用:文法递归的作用:用较少的产生式产生无穷多个句子,实现用较少的产生式产生无穷多个句子,实现“用有穷表示无穷用有穷表示无穷”。G G4 4:|0|1|2|3|4|5|6|7|8|9 0|1|2|3|4|5|6|7|8|9 2.3.3 2.3.3 和语言有关的几个概念和语言有关的几个概念 乔姆斯基(乔姆斯基(ChomskyChomsky)把文法分成四种类型把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内