编译原理课程设计之第三章上下文无关文法及分析.ppt
《编译原理课程设计之第三章上下文无关文法及分析.ppt》由会员分享,可在线阅读,更多相关《编译原理课程设计之第三章上下文无关文法及分析.ppt(81页珍藏版)》请在三一办公上搜索。
1、mcy,1,课程内容第一章 概论第二章 词法分析第三章上下文无关文法及分析第四章自上而下的语法分析第五章自下而上的语法分析第六章语义分析第七章运行时环境第八章代码生成,mcy,2,第三章 上下文无关文法及分析,本章的目的是为语言的语法描述寻求形式工具,要求该工具对程序设计语言给出精确无二义的语法描述。,mcy,3,3.1 语法分析过程3.2 上下文无关文法的形式定义3.3 二义性文法,形式工具,作业,第三章 上下文无关文法及分析,mcy,4,语法分析以词法分析程序输出的单词序列为输入,分析源程序的语法结构,判断它是否为相应程序设计语言的合法程序。通常语法分析的结果是构造出表示该语法结构的分析树
2、(parse tree)或语法树(syntax tree)。语法分析阶段可以确定单词流中违反源语言语法结构规则的错误。,语法分析程序的任务:,3.1 语法分析过程,mcy,5,如何来描述一种语言(符号串的集合)?,如果语言是有穷的(只含有有穷个句子),可以将句子逐一列出来表示。,如果语言是无穷的,找出语言的有穷表示。,mcy,6,语言的有穷表示有两个途经:,生成方式(文法):语言中的每个句子可以用严格定义的规则来构造。识别方式(自动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要么能停止并回答“不是”,要么永远继续下去。,mcy,7,Numb
3、er=digit digit*Digit=0|1|2|3|4|5|6|7|8|9,正规表达式:?,有穷自动机:?,寻求程序设计语言语法结构的形式化描述:,mcy,8,Noam Chomsky研究了自然语言的结构,提出了一种用来描述语言的数学系统(Chomsky文法),并以此定义了四类性质不同的语言,称为语言(文法)的Chomsky分类。,mcy,9,Chomsky文法分为四个层次:0型,1型,2型和3型文法。其中2型文法(或上下文无关文法)被证明是程序设计语言中最有用的。今天2型语言已代表着程序设计语言语法结构的标准方式。,mcy,10,Chomsky文法就是用生成方式来描述语言的:语言中的每
4、个句子可以用严格定义的规则来构造。,文法示例:简单句子的语法结构可有以下规则表示:,mcy,11,问:下面的语句是否是一个符合上述语法结构的简单句子?The big elephant ate the peanut.冠词 形容词 名词 动词 冠词 名词我们把上述两个字符串中间用一箭头分隔构成的有序对称为产生式。其中,“”表示“由组成”,“”也可以用=,:=,:来代替。,mcy,12,例如:包含加法、减法和乘法的简单整型算术表达式的语法结构可由下面的上下文无关文法(2型文法)给出:exp exp op expexp(exp)exp numberop+|-|*,mcy,13,3.1 语法分析过程3.
5、2 上下文无关文法的形式定义3.3 二义性文法,形式工具,作业,第三章 上下文无关文法及分析,mcy,14,3.2 上下文无关文法的形式定义,上下文无关文法(即2型文法)的形式定义chomsky文法的分类推导和规约的定义句型和句子的定义最左和最右推导文法定义的语言递归产生式和递归文法文法和语言,mcy,15,终结符集合VT非终结符集合VN(与VT不相交)产生式或文法规则A形成的集合P,其中AVN,(VTVN)*开始符号S,其中SVN令G是一个如上所定义的文法,则G=(VT,VN,P,S),产生式的左部,产生式的右部,上下文无关文法(即2型文法)的形式定义:上下文无关文法是一个四元组(VT,VN
6、,P,S):,mcy,16,例 G1=(N,0,1,其中:非终结符集合:VN=N,终结符集合:VT=0,1,产生式的集合:P=N0N,N1N,N0,N1,开始符号为:N,文法举例,N0N,N1N,N0,N1,N),mcy,17,通常情况下,文法只用产生式的集合表示:,G1N:N0N N1N N0 N1,G1N:N0N|1N|0|1,也可写成:,mcy,18,文法Gexpexp exp op expexp(exp)exp numberop+|-|*的终结符、非终结符、开始符号分别为?,mcy,19,3.2 上下文无关文法的形式定义,上下文无关文法(即2型文法)的形式定义chomsky文法的分类推
7、导和规约的定义句型和句子的定义最左和最右推导文法定义的语言递归产生式和递归文法文法和语言,mcy,20,chomsky文法的分类,通过对产生式施加不同的限制,chomsky将文法分为四种类型:,0型文法:若文法G中任一产生式,都有(VNVT)+,(VNVT)*,则称G为0型文法1型文法:若文法G中任一产生式,都有(VNVT)+,(VNVT)*|,仅仅 S除外,则称G为1型文法2型文法:若文法G中任一产生式,都有VN,(VNVT)*,则称G为2型文法,也称为上下文无关文法,mcy,21,3型文法:通常,我们把右线性文法及左线性文法统称为3型文法或正规文法。若文法G中任一产生式的形式都为AaB 或
8、 Aa,其中 AVN,BVN,aVT,则称G为右线性文法;类似地,如果G中仅含有形如ABa 或 Aa的产生式,则称G为左线性文法;,mcy,22,例:1型(上下文有关)文法 文法GS:SCD AbbA CaCA BaaB CbCB BbbB ADaD C BDbD D AabD,mcy,23,例:2型(上下文无关)文法 文法GS:SAB ABS|0 BSA|1,mcy,24,GS:S0A|1B|0 A0A|1B|0S B1B|1|0,例:3型(上下文无关)文法,mcy,25,文法Gexp:exp exp op expexp(exp)exp numberop+|-|*,下面的2型文法描述了包含加
9、法、减法和乘法的简单整型算术表达式的语法结构。,34-3 是符合该语法结构的简单整型算术表达式(句子)吗?,mcy,26,3.2 上下文无关文法的形式定义,上下文无关文法(即2型文法)的形式定义chomsky文法的分类推导和规约的定义句型和句子的定义最左和最右推导文法定义的语言递归产生式和递归文法文法和语言,mcy,27,推导和规约的定义,用产生式(规则)按一定方式产生句子的过程:exp exp op exp number op exp number-exp number-number,mcy,28,直接推导“”或一步推导若有v,w满足:v=,w=其中:是文法G的产生式,(VT VN)*,(V
10、T VN)*则称v直接推导到w,记作 v w,称w直接归约到v。注:直接推导就是产生式规则的一次运用,即用产生式的右部替换左部。,mcy,29,例:GS:S0S1,S01 直接推导:,S 0S1,0S1 00S11,00S11 000S111,000S111 00001111,mcy,30,推导的定义,若存在v=w0w1.wn=w(n0),我们用v=+w表示一步或多步推导,称v推导出w,或w归约到v;若有v=+w,或v=w,则记为v=*w,表示零步或多步推导。,mcy,31,例:GS:S0S1,S01,S 0S100S11000S11100001111,S+00001111,给出字符串0000
11、1111的一个推导:,mcy,32,3.2 上下文无关文法的形式定义,上下文无关文法(即2型文法)的形式定义chomsky文法的分类推导和规约的定义句型和句子的定义最左和最右推导文法定义的语言递归产生式和递归文法文法和语言,mcy,33,定义4 句型和句子:设G=(VN,VT,P,S)是一文法,且 V=VNVT,若S=*,V*,则称为文法G的句型;若S=+,VT*,则称为文法G的句子;,句型和句子的定义,mcy,34,简单整型算术表达式文法:exp exp op exp|(exp)|numberop+|-|*给出算术表达式(34-3)*42的一个推导,请列出推导过程中出现的句型和句子。,mcy
12、,35,算术表达式(34-3)*42的推导:exp exp op exp exp op number exp*number(exp)*number(exp op exp)*number(exp op number)*number(exp-number)*number(number-number)*number,mcy,36,3.2 上下文无关文法的形式定义,上下文无关文法(即2型文法)的形式定义chomsky文法的分类推导和规约的定义句型和句子的定义最左和最右推导文法定义的语言递归产生式和递归文法文法和语言,mcy,37,最左和最右推导,最左推导 对于文法GS:S*是一个最左推导是指:在推导过
13、程中的任何一步直接推导,都是对字符串中的最左非终结符进行替换,其中、是句型。简单整型算术表达式文法:exp exp op exp|(exp)|number op+|-|*,mcy,38,exp exp op exp(exp)op exp(exp op exp)op exp(number op exp)op exp(number-exp)op exp(number-number)op exp(number-number)*exp(number-number)*number,算术表达式(34-3)*42的最左推导:,mcy,39,最右推导:S*是一个最右推导是指:在推导过程中的任何一步直接推导,都
14、是对字符串中的最右非终结符进行替换,其中、是句型。最右推导也被称为规范推导。由规范推导所得的句型称为规范句型。,mcy,40,算术表达式(34-3)*42的最右推导:exp exp op exp exp op number exp*number(exp)*number(exp op exp)*number(exp op number)*number(exp-number)*number(number-number)*number,mcy,41,expexp op exp number op exp number+exp number+number,简单整型算术表达式文法:exp exp op
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课程设计 第三 上下文 无关 文法 分析
链接地址:https://www.31ppt.com/p-6599862.html