编译原理第2章文法和语言.ppt
《编译原理第2章文法和语言.ppt》由会员分享,可在线阅读,更多相关《编译原理第2章文法和语言.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、o基本概念基本概念 字母表、符号、符号串、闭包等字母表、符号、符号串、闭包等o文法的定义文法的定义o文法的分类文法的分类Chromsky Chromsky 对文法的分类对文法的分类o文法和语言文法和语言推导、归约、句型、句子、语言推导、归约、句型、句子、语言o语法分析树和二义性语法分析树和二义性第二章第二章 文法和语言文法和语言2.1 2.1 文法和语言的定义文法和语言的定义例句:例句:int i=0;int i=0;包含字母包含字母i,n,t,=,0,;,i,n,t,=,0,;,所有字母形成字母表;所有字母形成字母表;符号串,如符号串,如intint定义定义2.1 2.1 字母表字母表:字母
2、表:字母表是符号元素的非空有限集合。是符号元素的非空有限集合。定义定义2.2 2.2 符号符号(字符):字母表中的元素。(字符):字母表中的元素。定义定义2.3 2.3 符号串符号串(字符串):字母表中的符号所组成的任何(字符串):字母表中的符号所组成的任何有穷有穷序列。序列。如字母表如字母表=a,b=a,b,则,则a,ba,b是字母表是字母表中的元素,中的元素,a,b,aa,ab,a,b,aa,ab,都是符号串。都是符号串。空符号串空符号串:不含任何符号的符号串,用:不含任何符号的符号串,用 表示。表示。字母表,符号,符号串字母表,符号,符号串2.1 2.1 文法和语言的定义文法和语言的定义
3、o定义定义2.4 2.4 符号串符号串x x和和y y的的连接连接:指:指x x和和y y的符号按的符号按先后先后顺序排列顺序排列在一起组成的新的符号串,用在一起组成的新的符号串,用xyxy表示。表示。例:若例:若=a,b,x=ab,y=ba,=a,b,x=ab,y=ba,则则xy=abba,yx=baabxy=abba,yx=baab。注意:(注意:(1 1)xyyxxyyx;(2 2)x=x=xx=x=x。o定义定义2.5 2.5 符号串的长度符号串的长度:指符号串中符号的个数。:指符号串中符号的个数。例:例:|ab|=2,|aabb|=4,|=0|ab|=2,|aabb|=4,|=0。字
4、符串连接、字符串长度字符串连接、字符串长度2.1 2.1 文法和语言的定义文法和语言的定义o定义定义2.6 符号串的符号串的前缀前缀和和后缀后缀:分别指符号串的左部和右部任意字:分别指符号串的左部和右部任意字符串。符串。例:例:ab的前缀有的前缀有、a、ab;后缀有;后缀有、b、ab。o定义定义2.7 符号串集合的符号串集合的乘积乘积:设:设A、B是字母表是字母表上的符号串集合,则上的符号串集合,则定义定义A与与B的乘积:的乘积:AB=xy|x A,y B。o例:设例:设=a,b,c,d,令,令A=aa,bb,B=cc,dd,则则AB=aacc,aadd,bbcc,bbdd,BA=ccaa,c
5、cbb,ddaa,ddbb。显然。显然ABBA定义定义空集合空集合:=,有,有A=A=A。前缀、后缀、乘积前缀、后缀、乘积2.1 2.1 文法和语言的定义文法和语言的定义o定义定义2.8 符号串的符号串的方幂方幂:设:设x是符号串,则:是符号串,则:x0=,x1=x,x2=xx,xn=xx(n个个)o定义定义2.9 符号串集合符号串集合A的的方幂方幂:A0=,A1=A,A2=AA,An=AA(n个个A)oA的的正闭包正闭包:A+=A1A2oA的的闭包闭包:A*=A0A1A2o显然:显然:A*=A0A+,A+=AA*o问题问题:A=0,1,则则A+表示的集合意义?表示的集合意义?方幂、正闭包、闭
6、包方幂、正闭包、闭包2.1 2.1 文法和语言的定义文法和语言的定义o什么是文法什么是文法n文法是定义或描述语法结构的一组形式规则,是规则的非空有穷集合文法是定义或描述语法结构的一组形式规则,是规则的非空有穷集合n规则又称为重写规则,产生式或生成式,每个产生式为规则又称为重写规则,产生式或生成式,每个产生式为 或或 :=:=,是某字母表是某字母表A A的正闭包的正闭包A A+的一个符号称为规则的左部;的一个符号称为规则的左部;是是A A*中的一中的一个符号,称为规则的右部。个符号,称为规则的右部。n 与与 的区别?的区别?文法文法2.1 2.1 文法和语言的定义文法和语言的定义o什么是文法什么
7、是文法n文法是定义或描述语法结构一组形式规则,是规则的非空又穷集合文法是定义或描述语法结构一组形式规则,是规则的非空又穷集合n规则又称为重写规则,产生式或生成式,每个产生式为规则又称为重写规则,产生式或生成式,每个产生式为 或或 :=:=,是某字母表是某字母表A A的正闭包的正闭包A A+的一个符号称为规则的左部;的一个符号称为规则的左部;是是A A*中中的一个符号,称为规则的右部。的一个符号,称为规则的右部。n 与与 的区别?的区别?例句:例句:He gave me a book.He gave me a book.英语中的基本语法规则:英语中的基本语法规则:|He He|me|me boo
8、k book gave gave a|an|the a|an|the例句:例句:He gave me a book.He gave me a book.根据上述语法规则对例句进行分析,可推出该例句。根据上述语法规则对例句进行分析,可推出该例句。=He He =He He =He gave He gave =He gave He gave =He gave me He gave me =He gave me He gave me =He gave me a He gave me a =He gave me a book =He gave me a book文法文法2.1 2.1 文法和语言的定义
9、文法和语言的定义int i=0;int i=0;i=i+1;i=i+1;+|=+=(a|z|A|Z|_)(a|z|A|Z|_|0|9)(a|z|A|Z|_)(a|z|A|Z|_|0|9)int|char|int|char|文法包含的要素:文法包含的要素:终极字符集:终极字符集:如如int iint i非终非终极极字符集:字符集:如如 、产生式:产生式:如如 +开始符号:开始符号:文法文法2.1 2.1 文法和语言的定义文法和语言的定义o定义定义2.10 文法文法是一个四元组:是一个四元组:GS=(VN,VT,P,S),其中:其中:VN:非终极符集合(变量集);:非终极符集合(变量集);VT:终
10、极符集合;:终极符集合;P:产生式集合,每个产生式为:产生式集合,每个产生式为或或:=,设,设V=VN VT,则,则 V*VNV*,V*;S:开始符号。:开始符号。注意:注意:p VN,VT,P三个集合均为非空有穷集合三个集合均为非空有穷集合p VN VT=p V=VN VT表示文法表示文法G的字母表或词汇表的字母表或词汇表o例例2.1 G=(N,0,1,N0N,N1N,N0,N1,N),其中:,其中:VN=N;VT=0,1;P=N0N,N1N,N0,N1;S=N。文法文法2.1 2.1 文法和语言的定义文法和语言的定义o规则规则1:a表示表示a的的0次或多次重复出现,即次或多次重复出现,即a
11、表示表示或或a或或aa或或aaa或或aa;am表示表示a的的m到到n次出现。次出现。o规则规则2:a=a01o规则规则3:AxW1y|xW2y|xWny可表示成可表示成Ax(W1|W2|Wn)yn文法产生式的其它表示法:文法产生式的其它表示法:文法文法2.1 2.1 文法和语言的定义文法和语言的定义o定义定义2.11 符号串的符号串的推导推导与与归约归约:已给文法:已给文法G=VN,VT,P,S,V=VN VT,令,令x,y,V*,且,且 P,则,则xy能能直接推导直接推导出出xy,或者或者xy 直接规约直接规约到到xy,记作,记作xyxy。“”读作直接推导读作直接推导例例2.1 G=(N,0
12、,1,N0N,N1N,N0,N1,N)中,存中,存在如下推导:在如下推导:N0 N1 N0N00 N0N01 N1N11N111文法文法2.1 2.1 文法和语言的定义文法和语言的定义 若若若若 1 1,2 2,3 3,n n V*,V*,且有直接推导的序列且有直接推导的序列且有直接推导的序列且有直接推导的序列 1 1 2 2,2 2 3 3,n-1n-1 n n,则称则称则称则称 1 1可可可可推推推推导导导导出出出出 n n,或,或,或,或 n n 规约规约规约规约到到到到 1 1 ,记作,记作,记作,记作 1 1 n n+若若若若 1 1 n n,或或或或 1 1=n n,则记为,则记为
13、,则记为,则记为 1 1 n n+*归约是推导的逆过程,若存在归约是推导的逆过程,若存在归约是推导的逆过程,若存在归约是推导的逆过程,若存在 1 1 n n,则认为,则认为,则认为,则认为 n n能能能能归约归约为为为为 1 1例例2.2 G=(N,0,1,N0N,N1N,N0,N1,N)中:中:有有有有N N0N0N0000,所以,所以,所以,所以 N N 00 00+文法文法2.1 2.1 文法和语言的定义文法和语言的定义oN.Chomsky在在1956年描述形式语言时给出了四类文法的定义。年描述形式语言时给出了四类文法的定义。o0型型文文法法(短短语语文文法法):要要求求每每个个产产生生
14、式式,有有 V*VNV*,V*,即即 中至少含有一个非终结符中至少含有一个非终结符。o1型文法型文法(上下文有关文法上下文有关文法):如果对:如果对0型文法施加以下的限制,就得到型文法施加以下的限制,就得到1型型文法:文法:对除对除S外的任何产生式外的任何产生式,要求,要求1|即规则左部符号个数不超过右部符号个数,即规则左部符号个数不超过右部符号个数,S除外除外如:如:A是是1型文法的一个产生式,型文法的一个产生式,和和非空,则只有在非空,则只有在和和这这样一个上下文中样一个上下文中A才能替换为才能替换为。文法分类文法分类注意:注意:如果规则左部有如果规则左部有终结符终结符,则该文法一定属于,
15、则该文法一定属于0或或1型文法。型文法。0、1型文法的型文法的区别区别:规则左、右部的长度:规则左、右部的长度 如果文法中所有规则左部符号串长度均如果文法中所有规则左部符号串长度均小于或等于小于或等于右部符号右部符号串长度,则称为串长度,则称为1型文法,否则为型文法,否则为0型文法。型文法。2.1 2.1 文法和语言的定义文法和语言的定义o2型文法型文法(上下文无关文法上下文无关文法):如果对:如果对1型文法施加以下的限制,就得到型文法施加以下的限制,就得到2型文法:型文法:G的任何产生式为的任何产生式为A,A VN,(VN VT)*这种文法意味着,每一规则左部只有一个非终结符,无需考虑该非终
16、结符这种文法意味着,每一规则左部只有一个非终结符,无需考虑该非终结符在上下文中的出现情况。在上下文中的出现情况。o3型文法型文法(正则文法正则文法):如果对如果对2型文法施加以下的限制,就得到型文法施加以下的限制,就得到3型文法:型文法:G的任何产生式为的任何产生式为AB|,或者或者AB|,其中其中 A,B VN,VT3型文法称为型文法称为右线性文法或左线性文法右线性文法或左线性文法;3型文法等价于正规式,所以又称型文法等价于正规式,所以又称正规文法。正规文法。文法分类文法分类总结:总结:2、3型文法规则左部仅为非终结符,若规则型文法规则左部仅为非终结符,若规则右部形式仅为右部形式仅为AB|,
17、或者或者AB|(A,B VN,VT)则为)则为3型文法,否则为型文法,否则为2型文法型文法四种四种类型描述能力比型描述能力比较0型1型2型3型2.1 2.1 文法和语言的定义文法和语言的定义o定义定义2.12 文法文法G=VN,VT,P,S:GG所产生的所产生的所产生的所产生的语言语言,记作,记作,记作,记作L(G)=|L(G)=|V VT T*,*,且且且且S S。*若字符串若字符串若字符串若字符串 是从识别符推导出来的,即是从识别符推导出来的,即是从识别符推导出来的,即是从识别符推导出来的,即S S,则称则称则称则称 为为为为GG的的的的句型句型;若若若若 仅由终结符号组成,即仅由终结符号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 文法 语言
限制150内