第2章文法和语言.ppt
《第2章文法和语言.ppt》由会员分享,可在线阅读,更多相关《第2章文法和语言.ppt(80页珍藏版)》请在三一办公上搜索。
1、第二章 文法和语言的基本知识,形式语言的理论是编译的重要理论基础。有关形式语言的概念包括:字母表和符号串文法和语言的形式定义短语、直接短语和句柄语法树和文法的二义性文法和语言的分类,第二章 文法和语言的基本知识,2.1 概述2.2 字母表和符号串2.3 法和语言的形式定义2.4 短语、直接短语和句柄2.5 语法树与文法的二义性2.6 文法和语言的分类2.7 自上而下的分析方法2.8 有关文法实用中的一些说明,2.1 概述,语言是一个记号系统汉语-符合汉语语法的句子的全体英语-符合英语语法的句子的全体程序设计语言-该语言的程序的全体,2.1 概述,对程序设计语言非形式化的描述:语法:定义每个程序
2、构成的规则 语义:定义每个程序的意义 语用:每个程序(语句)的用途例s=2*3.1416*r*(h+r)的非形式化的描述:语法赋值语句有一个变量、一个赋值号后跟表达式构成语义计算=右部的值,送入左部变量语用赋值语句用来计算和保存表达式的值,2.1 概述,非形式化描述不清晰 不准确形式化描述用一整套带有严格规定的符号体系来描述问题的方法用形式语言描述各种程序设计语言,程序设计语言包括:语法和语义语法(syntax)定义:是一组规则,用它可以形成和产生一个合适的程序描述工具:文法作用:定义什么样的符号序列是合法的,与符号的含义无关。,形式语言的基本形式,例:“我是大学生”是汉语的一个句子,用EBN
3、F来表示汉语句子的构成规则:句子=主语谓语主语=代词名词代词=我你他名词=王明大学生工人英语谓语=动词直接宾语动词=是学习直接宾语=代词名词,例如:句子“我是大学生”的推导过程如下:句子 主语谓语 代词谓语 我谓语 我动词直接宾语 我是直接宾语 我是名词 我是大学生,2.2 字母表和符号串,1、字母表和符号定义:元素的非空有穷集合例:=01=ab,c元素也称为符号,字母表也称符号集。程序语言的字母表由字母数字和若干专用符号组成。,2、符号串,定义:由字母表中的符号组成的任何有穷序列例:字母表=01上的符号串:0,00,10等=ab,c上的符号串:a,ab,aaca等,2、符号串,在符号串中,符
4、号是有顺序的,顺序不同,代表不同的符号串,如ab和ba不同不含任何符号的符号串称为空串,用表示注意:并不等于空集合 符号串长度:符号串中含有符号的个数如:|abc|=3|=0,3、符号串的运算,符号串的连接:设x、y是符号串,它们的连接是把y的符号写在 x的符号之后得到的符号串xy例如 x=ST,y=abu,则 xy=STabu x=x=?符号串的方幂:把符号串a自身连接n次得到的符号串an=aaaa a1 a2 a0 a1=a a2=aa a0=,4、符号串集合,定义:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串集合。符号串集合的乘积:符号串集合A和B的乘积定义为:AB
5、=xy|xA且yB,即AB是由A中的串x和B中的串y连接而成的串xy组成的集合。若集合A=ab,cde B=0,1 则 AB=ab0,ab1,cde0,cde1显然 A=A=?,4、符号串集合,符号串集合的方幂:设A是符号串的集合,则称Ai为符号串集A的方幂,其中i是非负整数。具体定义如下:A0=A1=A,A2=A AAk=AA.A(k个)=AAk-1=Ak-1 A,例:A=0,1,5、集合的闭包,闭包集合A的闭包A*(正闭包A+)定义如下:A+=A1 A2 A3 An A*=A0 A1 A2 A3 An 例:设有字母表=0,1+=12=0,1,00,01,10,11,000,即+表示上0 1
6、构成的所有符号串的集合。*=012=,0,1,00,01,10,11,000,字母表上的一个语言是上符合某种规则的一些符号串的集合,是*的一个子集。例如:=a,b*=,a,b,aa,ab,ba,bb,aaa,aab,1.集合ab,aabb,aaabbb,anbn,或w|w*且w=anbn,n1为字母表上的一个语言。集合a,aa,aaa,或w|w*且w=an,n1为字母表上的一个语言。是一个语言。即 是一个语言。,5、集合的闭包,重点回顾,解释程序(interpreter)与编译程序编译程序是将源程序翻译成目标程序后再执行该目标程序解释程序则是逐条读出源程序中的语句并解释执行,即在解释程序的执行
7、过程中并不产生目标程序。编译的基本过程,重点回顾,字母表和符号符号串符号串的运算符号串的连接符号串的方幂符号串集合符号串集合的乘积符号串集合的方幂集合的闭包,2.3 文法和语言的形式定义,1形式语言的定义2.文法的定义3文法的简化表示法4推导与归约5句型、句子、语言的定义6规范推导和规范归约7文法的递归性,1形式语言的定义,序列的集合称为形式语言(字母表上按某种规则构成的所有符号串的集合)形式语言的描述:枚举法当语言为有穷集合时 文法当语言为无穷集合时,1形式语言的定义,例:=a,b L1=a,b,ab;L2=aa,bb,aabb L3=a,b,aa,ab,ba,bb,aab,aba,abb,
8、baa=+无穷集不宜用枚举法来描述自然语言描述(由a、b构成的所有符号串)非形式化描述 文法描述:形式化描述 A-a A-b A-Aa A-Ab,2文法的定义,产生式(规则)产生式是一个有序对(,),通常写作(或:=)。读作:定义为。称为产生式的左部,称为产生式的右部。产生式又叫做定义式或者语法规则。一组规则定义了一个语言的语法结构机器识别(语法正确与否)的要求,2文法的定义,例:A0 A1 AA 0 AA 1描述的语言L=0,1,00,01,10,11,100,111,001,000,011=+,非终结符号:出现在规则左部能派生出符号或符号串的那些,即每个非终结符号表示一定符号串的集合,一般
9、用大写字母表示。终结符号:不属于非终结符号的那些符号,他是组成语言的基本符号,是一个语言的不可再分的基本符号,通常用小写字母表示。,文法定义:文法G(Grammar)定义为四元组(VN,VT,P,S)VN(Nonterminal):非终结符集。VT(Terminal):终结符集。是语言的句子中出现的字符。所以,有VNVT=P(Production):产生式(规则)集合S:SVN,开始符号或识别符号,2文法的定义,说明:V=VNVT,V称为文法G的词汇表P中产生式形如:,其中V+且至少含一个非终结符,V*VNVT=S是一个非终结符,且至少要在一条产生式的左部出现,2文法的定义,例1:文法G=(V
10、N,VT,P,S)其中:VN=S,VT=0,1,P=S0S1,S01开始符为S例2:文法G=(VN,VT,P,S)VN=标识符,字母,数字,VT=a,b,c,x,y,z,0,1,9,P=,a,z,0,9,S=,2文法的定义,2文法的定义,例3:以下四元组都是文法。(A,0,1,A01,A0A1,A1A0,A)。(A,0,1,A0,A0A,A)。(A,B,0,1,A01,A0A1,A1A0,BAB,B0,A)。(A,B,0,1,A0,A1,A0A,A1A,A)。(S,a,b,S00S,S11S,S00,S11,S)。,3文法的简化表示法,简化表示法:通常不用将文法的四元组表示出来,只写出产生式约
11、定:第一条产生式的左部是开始符号或用GS表示S是开始符号用大写字母(或用尖括号括起来)表示非终结符用小写字母表示终结符左部相同的产生式A,A可以记为A|,其中“|”是“或”的意思,,分别称为侯选式,例2可以化简为:文法GS:SA|SA|SDAa|b|zD0|1|9,字母,标识符,数字,3文法的简化表示法,例2:文法G=(VN,VT,P,S)VN=标识符,字母,数字,VT=a,b,c,x,y,z,0,1,9,P=,a,z,0,9,S=,4.推导(Derivation)与归约(Reduction),直接推导和直接归约:Aa是文法G的产生式,若有v,w满足:v=xAy,w=xay,则称v直接推导出w
12、,也称w直接归约到v,记作 v w直接推导就是用产生式的右部替换产生式的左部的过程(仅使用一次规则)直接归约就是用产生式的左部替换产生式的右部的过程,例 文法G:S0S1,S01 有直接推导:S 0S1(S0S1)0S1 00S11(S0S1)00S11 000S111(S0S1)000S111 00001111(S01),4.推导(Derivation)与归约(Reduction),推导和归约若存在直接推导序列0 1 2.n 则称0推导出n,或n归约到0,记为 0=+n若有0=+n,或0=n,则记作0=*n,4.推导(Derivation)与归约(Reduction),例 文法G:S0S1,
13、S01 S 0S1 00S11 000111 S=+000111S=*S,4.推导(Derivation)与归约(Reduction),4.推导(Derivation)与归约(Reduction),例 文法GE:EE+T|T TT*F|F F(E)|i,对i+i*i的直接推导序列,E E+T,T+T,F+T,i+T,i+T*F,i+F*F,i+i*Fi+i*i,5句型、句子、语言的定义,句型和句子设有文法GS,若符号串是从开始符推导出来的,即 S=*,(VNVT)*则称是文法G的句型。若仅由终结符组成,即 S=+,且 VT*,则称是文法G的句子。例 文法GS:S0S1,S01因为S 0S1 0
14、0S11 000S111 00001111所以S,0S1,00S11,000S111,00001111都是G的句型00001111是G的句子,5句型、句子、语言的定义,句型和句子例 文法GE:EE+T|T TT*F|F F(E)|ii+T*F(i*i+i),5句型、句子、语言的定义,语言的定义由文法G生成的语言记为L(G),它是文法G的一切句子的集合,即 L(G)=x|S=+x,且 xVT*例 文法G:S0S1,S01S0S1 00S11 03S13 0n-1S1n-1 0n1nL(G)=0n1n|n1,文法和语言的关系:文法G生成的每个串都在L(G)中L(G)中的每个串确实能被G生成根据语言
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文法 语言
链接地址:https://www.31ppt.com/p-5634463.html