《编译原理实践及应用》第2章文法基础.ppt
《《编译原理实践及应用》第2章文法基础.ppt》由会员分享,可在线阅读,更多相关《《编译原理实践及应用》第2章文法基础.ppt(39页珍藏版)》请在三一办公上搜索。
1、形式语言基本知识,第二章,本章要求,主要内容:符号串,文法的概念及分类,语言的定义过程重点掌握:上下文无关文法、推导、句型、句子、语言,语法树、二义性文法、文法的语言生成过程,以C和PASCAL为例复习高级语言1 语言的基本字符集的定义(字母,数字,界符)2 单词集的定义3 数据类型的定义4 表达式的定义5 语句的定义6 程序定义PASCAL和C的主要区别,2.1 符号和符号串,1.字母表:是元素的有穷非空集合2.符号:字母表中的每个元素,因此字母表也称为符号集。不同的语言可以有不同的字母表,例如英文的字母表中26个字母、数字及标点符号等。PASCAL语言的字母表是由字母、数字、若干专用符号组
2、成。符号是该语言能识别的符号,字母表是该语言能识别的所有符号的全体(字符集)。,基本概念(续),3.符号串:由字母表中的符号组成的任何有穷序列称为符号串,例如00 11 10 是字母表=0,1上的符号串.字母表A=a,b,c上的一些符号串有:a,b,c,ab,aaca等。在符号串中,符号的顺序是很重要的,符号串ab就不同于ba,abca和aabc也不同。符号串STR表示“由符号S、T和R,并按此顺序组成.,基本概念(续),4.符号串的运算a.字符串的连接:字符串称为字符串和的连接 符号串的长度:符号串中符号的个数,例如:某符号串中有m个符号,则称其长度为m,表示为x=m,如001110的长度是
3、6。空符号串:即不包含任何符号的符号串,用表示,其长度为0,即=0。用*表示上所有的符号串的全体(长度为0,1,2,)。,集合的运算b.*的子集U、V的积:UV=|U&V 长度相加即:集合UV中的符号串是由U和V的符号串连接而成。U=aa,bb V=00,11 则UV=?c.集合的方幂:n个相同符号连接Vn=VVVV.V 规定V0=d.闭包、正闭包的运算,例:=a,b*=,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab,使用*表示上的一切符号串(包括)组成的集合。称为的闭包。上的除外的所有符号串组成的集合记为+。称为的正闭包。,V=0,1 V
4、*=?V+=?,2.2 上下文无关文法及其语言,文法是描述语言的语法结构的形式规则。是一种工具,它可用于严格定义句子的结构;用有穷的规则刻划无穷的集合文法是被用来精确而无歧义地描述语言的句子的构成方式.文法描述语言的时候不考虑语言的含义。,引 例,例1:有如下规则(表示由组成)|我大学生是|现要求根据如上规则得出句子:我是大学生=我是大学生,句子“我是大学生”也可以如下图示分析,在有规则的情况下,每一次用上述规则的右边去替换左边,得到“我是大学生”是符合上述规则的句子,上下文无关文法的形式定义,由四部分组成:终结符号:是组成该语言的最基本的符号,是不可再分的基本符号,如保留字、标识符等。非终结
5、符号:规则中用尖括号括起来的符号,表示一些语法成分,可以推导出其他的语法成分,表示一定符号串的集合,是一个类,如表达式。开始符号:规则中的一个特殊的非终结符号,语言中的句子都从它开始推导,如程序、句子产生式:定义语法成分的规则,其中:,文法的形式定义(续),一个文法G抽象地表示为四元组G=(Vn,Vt,P,S)其中Vn表示非终结符号Vt表示终结符号,VnVt=(字母表),VnVt=S是开始符号,P是产生式,形如:(V+且至少含有一个非终结符号,V*),上例中:G=(Vn,Vt,P,)Vn=(,)Vt=(我,是,大学生)P=,|我 大学生 是|,产生式的形式为:A,左部符号,非终结符,右部,可以
6、含有非终结符和终结符,又称为一条规则有时一个产生式不足以描述该语法范畴,就用多个产生式,如算术表达式的描述为:(递归定义)E E+E E E*E E i相同左部的一个右部又称一个候选式,上下文无关文法所定义的语法成分独立于它可能出现的环境,即不考虑上下文。,算术表达式的文法定义,变量是表达式表达式+表达式是表达式表达式*表达式是表达式(表达式)是 表达式,E E+E E E*E E(E)E i,E E+E|E*E|(E)|i,从上下文无关文法得到某个符号串的方法:从文法的开始符号出发,反复连续使用产生式,对左边的非终结符进行替换和展开,直到全部为终结符为止。例:表达式定义规则,E E+E E
7、E*E E(E)E i,(i+i),E=(E)=(E+E)=(i+E)=(i+i),推导:连续使用产生式右部去替换左部某个非终结符的过程,得到的连续序列称为一个推导。直接推导:又称一步推导(用 符号=表示),就是用某条规则的右部去替换该规则的左部,几个概念的形式定义,直接推导:如果是文法 G=(Vn,Vt,P,S)的产生式,和是*中的任意符号,若有符号串v,w满足:v=,w=,则说v直接产生w,(w是v的直接推导)记作:v=w,例3:G=(E,i,+,*,(,),P,E)P:E E+E|E*E|(E)|i 表达式(i)和(i+i)*i的推导:,E(E)(i)E E*E(E)*E(E+E)*E(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理实践及应用 编译 原理 实践 应用 文法 基础
链接地址:https://www.31ppt.com/p-6528792.html