第02章_文法和语言的基本知识(1)精选PPT.ppt
《第02章_文法和语言的基本知识(1)精选PPT.ppt》由会员分享,可在线阅读,更多相关《第02章_文法和语言的基本知识(1)精选PPT.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第02章_文法和语言的基本知识(1)第1页,此课件共80页哦第二章第二章 文法和语言的基本知识文法和语言的基本知识q字母表和符号串字母表和符号串q文法和语言的形式定义文法和语言的形式定义q短语、直接短语和句柄短语、直接短语和句柄q语法树和文法的二义性语法树和文法的二义性q文法和语言的分类文法和语言的分类第2页,此课件共80页哦2.0 概概 述述 对程序设计语言的描述是从语法、语义和语用三个因素来考虑。语法是对语言结构的定义。语用则是从使用的角度去描述语言。语义是描述了语言的含义。第3页,此课件共80页哦2.0 概概 述述例如例如 赋值语句赋值语句s s2*3.1416*r*(r+h)2*3.1
2、416*r*(r+h)的的 非形式化的描述为:非形式化的描述为:语法:赋值语句由一个变量,后随一个赋 值号“”,再在其后面跟一个表达式构成。语义:首先计算语句右部表达式的值,然后把所得结果送给左部变量中。语用:赋值语句可用来计算和保存表达式的值。第4页,此课件共80页哦2.0 概 述 这种非形式化的描述,不够清晰和准确,为了精确定义和描述程序设计语言,需采用形式化的方法。所谓形式化的方法,是用一整套带有严格规定的符号体系来描述问题的方法。形式语言理论是编译的重要理论基础。重点介绍如何采用形式化的方法描述程序设计语言。第5页,此课件共80页哦2.1 字母表和符号串元素的非空有穷集合。例如,=a,
3、b,c 1.字母表 根据字母表的定义,是字母表,它由a、b、c三个元素组成。程序设计语言的字母表 =x|x ASCII字符第6页,此课件共80页哦 是一个字母表,由0、1两个元素组成。注意:例如,=0,1 (2)字母表中的元素,可以是字母、数字或其他符号。(1)字母表中至少包含一个元素。2.1 字母表和符号串第7页,此课件共80页哦 字母表中的元素称为符号或称为字符。例如,前述例子中2.符号(字符)a、b、c 是字母表中的符号;0、1 是字母表中的符号。2.1 字母表和符号串第8页,此课件共80页哦 例如,设有字母表=a,b,c 符号的有穷序列称为符号串。符号串总是建立在某个特定字母表上的且只
4、由字母表上的有穷多个符号组成。则有符号串 a,b,ab,ba,cba,abc 3.符号串(字)2.1 字母表和符号串第9页,此课件共80页哦说明说明:不包含任何符号的符号串,称为空符号串,用表示。符号串中符号的顺序是很重要的。ab和ba是字母表上的两个不同的符号串。空符号串由0个符号组成,其长度|=0|=02.1 字母表和符号串第10页,此课件共80页哦2.2 符号串的运算符号串的运算 设x和y是符号串,则串xy称为它们的连结。则XYabc10a,YX10aabc注意:对任意一个符号串x,1.符号串的符号串的连结连结例如,设Xabc,Y10a我们有 xxx第11页,此课件共80页哦2.2 符号
5、串的运算符号串的运算2.符号串集合的符号串集合的乘积乘积 设A和B是符号串的集合,则A和B的乘积定义为:集合的乘积是满足于 xA,yB的所有符号串 xy 所构成的集合。AB=xy|xA,yB第12页,此课件共80页哦A=A=A2.2 符号串的运算符号串的运算例如:设A=aa,b,B=c,d 则AB=aac,aad,bc,bd 由于对任意的符号串x,总有x=x=x所以,对任意集合A,我们有:第13页,此课件共80页哦2.2 符号串的运算符号串的运算 特别指出的是,是符号串,不是集合,而表示由空符号串 所组成的集合,但这样的集合不是空集合=。第14页,此课件共80页哦2.2 符号串的运算符号串的运
6、算 3.符号串的幂运算符号串的幂运算 设x是符号串,则x的幂运算定义为:x0=x1=x x2=xx x3=xxx xn=xx x=x xn-1(n0)n注意:x0 1第15页,此课件共80页哦2.2 符号串的运算符号串的运算例如,设 xabc 则x0=x1=abcx2=xx=abcabc 第16页,此课件共80页哦2.2 符号串的运算符号串的运算 4.符号串符号串集合的幂运算集合的幂运算 设A是符号串的集合,则集合A的幂运算定义为:A0=A1=AA2=AA An=AA A=AAn-1(n0)n第17页,此课件共80页哦2.2 符号串的运算符号串的运算例如,设A=a,b,则A0=A1=A=a,b
7、 A2=AA=aa,ab,ba,bb A3=AAA=A2A=aaa,aab,aba,abb,baa,bab,bba,bbb 第18页,此课件共80页哦2.2 符号串的运算符号串的运算5.集合集合A的正闭包的正闭包A与闭包与闭包A*设A是符号串的集合,则A的正闭包A和A的闭包A*的定义为:A+=A1A2 An A*=A0 A1A2 An=A+第19页,此课件共80页哦2.2 符号串的运算符号串的运算 可见,集合A的正闭包表示A上元素a,b构成的所有符号串的集合,集合A的闭包比集合A的正闭包多含一个空符号串。例如,设A=a,b,则:A+=a,b,aa,ab,ba,bb,aaa,aab,A*=,a,
8、b,aa,ab,ba,bb,aaa,aab,即:闭包为集合中元素的任意组合第20页,此课件共80页哦2.3 2.3 文法和语言的形式定义文法和语言的形式定义 每个形式语言都是某个字母表上按某种规则构成的所有符号串的集合。反之,任何一个字母表上符号串的集合均可定义为一个形式语言。形式语言形式语言序列的集合称为形式语言。第21页,此课件共80页哦2.3 2.3 文法和语言的形式定义文法和语言的形式定义 下面用A表示+,用式子A0表示符号串0A或A生成符号串0,符号“”读作“生成”或“由组成”。则集合A可表示成:A0A1AA0AA1+=123=0,1,00,10,11,01,000,100,第22页
9、,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 规则是一个符号与一个符号串的有序对(A,),通常写作:A(或A)1.1.规则规则 也称产生式也称产生式 规则的作用是告诉我们如何用规则中的符号串生成语言中的序列。第23页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 例如,前述例中一组规则 描述的语言序列只可能是由0和1组成的符号串。A0A1AA0AA1第24页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 规则中出现的符号分为两类,一类是终结符号,另一类是非终结符号。非终结符号是出现在规则左部能派生出符号或符号串的那些符号
10、,即每个非终结符号表示一定符号串的集合,用大写字母表示或用尖括号把非终结符号括起来。例如,上例中的A。第25页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 终结符号是不属于非终结符号的那些符号,它是组成语言的基本符号,是一个语言的不可再分的基本符号,通常用小写字母表示。例如,上例中的0和1。第26页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 规则的非空有穷集合,通常表示成四元组VN是规则中非终结符号的集合。VT是规则中终结符号的集合。P 是文法规则的集合。2.文法文法G=VN,VT,P,S 第27页,此课件共80页哦2.3.1 2.3.1
11、文法的形式定义文法的形式定义 S 是一个非终结符号,称为文法的开始符号或文法的识别符号,它至少要在一条规则中作为左部出现。由它开始,识别出我们所定义的语言。由文法定义可知,文法是对语言结构的定义和描述,文法四大要素中关键是规则的集合。第28页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义将它们缩写为:A1|2|nA1A2An 其中每个i有时也称为是A的一个候选式。为了书写方便,对于若干个左部相同的规则,如第29页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义我们约定:第一条规则的左部是识别符号。对文法G不用四元式显示表示,仅 只将规则写出。第30
12、页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义 G=(VN,VT,P,S)VN=AVT=0,1P:A 0|1|A0|A1S=A前例中描述+的文法是:第31页,此课件共80页哦2.3.1 2.3.1 文法的形式定义文法的形式定义求其VN、VTS AA B|if A then A else AB C|B+C|+CC D|C*D|*DD x|(A)|-D设文法G产生式为:第32页,此课件共80页哦2.3.2.3.2 2 推导和归约推导和归约 推导:从文法开始符号开始,通过产生式的右部取代左部的过程,最终产生句子。规约:从给定源语言的句子开始,通过产生式的左部取代右部的过程,
13、最终到达开始符号。由终结符组成的字符串第33页,此课件共80页哦2.3.2.3.2 2 推导和归约推导和归约 最左推导,每次使用一个规则以其右部取代符号串的最左非终结符 最右推导也称为规范推导,最左规约又称为规范规约。最右推导,每次使用一个规则以其右部取代符号串的最右非终结符 注:推导和规约的每一步只能用一个产生式进行替换。第34页,此课件共80页哦2.3.2.3.2 2 规范推导和规范归约规范推导和规范归约 例 设有文法GS:请给出句子101001的最右、最左推导。分析 最右推导是指在推导过程中任何一步(和是句型),都是对中的最右非终结符进行替换。SABAA0|1BB0|S1第35页,此课件
14、共80页哦2.3.2.3.2 2 规范推导和规范归约规范推导和规范归约SABAS1AAB1AA01A1B01A10011B1001101001句子101001的最右推导为:SABAA0|1BB0|S1第36页,此课件共80页哦2.3.2.3.2 2 推导和归约推导和归约 最左推导是指在推导过程中任何一步(和是句型),都是对的最左非终结符进行替换。句子101001的最左推导为:SABAA0|1BB0|S1SAB1BB10B10S110AB1101BB11010B1101001第37页,此课件共80页哦2.3.2 2.3.2 语言的形式定义语言的形式定义 (1)形式上的区别,推导用“”表示,规则用
15、“”表示。(2)对文法G中任何规则A,我们有A,即推导的依据是规则。注意推导和规则的区别:第38页,此课件共80页哦 即表示从0 出发,经一步或若干步 或者说 使用若干次规则可推导出 n。2.3.2 2.3.2 语言的形式定义语言的形式定义 如果存在一个推导序列:则我们称这个序列是一个从0至n的长度为n的推导,记为 0 1 2 n+0 n第39页,此课件共80页哦2.3.2 2.3.2 语言的形式定义语言的形式定义 例如 设有文法GE=(E,T,F,i,+,*,(,),P,E)对 i+i*i 有如下推导序列:我们可记为 其中P为:EE+T|TTT*F|FF(E)|iEE+T T+TF+Ti+T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 文法 语言 基本知识 精选 PPT
限制150内