第2章-形式语言的基本知识课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-形式语言的基本知识课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 基本知识 课件
- 资源描述:
-
1、编编 译译 原原 理理2023年2月15日第第2 2章形式语言的基本知识章形式语言的基本知识1.1.本章是本章是编译原理课程的理论基础编译原理课程的理论基础,要求掌握形,要求掌握形式语言的基本术语和概念。式语言的基本术语和概念。2.2.掌握文法和语言的定义,文法的二义性与递归掌握文法和语言的定义,文法的二义性与递归性的判断方法及句型的分析方法。性的判断方法及句型的分析方法。3.3.熟练使用文法定义程序设计语言的单词和语法熟练使用文法定义程序设计语言的单词和语法成分。成分。4.4.对形式语言的理论有一个初步认识。对形式语言的理论有一个初步认识。教学目标教学目标编编 译译 原原 理理2023年2月
2、15日 2.1 字母表和符号串的基本概念字母表和符号串的基本概念 2.2 文法和语言的形式定义文法和语言的形式定义 2.3 句型的分析句型的分析 2.4 文法和语言的分类文法和语言的分类 2.5 PL/0 PL/0编译程序概述编译程序概述教学内容教学内容编编 译译 原原 理理2023年2月15日字母表字母表:符号的非空有限集:符号的非空有限集 例:例:=00,11 2.12.1字母表和符号串字母表和符号串符号符号:字母表中的元素:字母表中的元素 例:例:0 0,1 1符号串符号串:由字母表中的符号组成的任何有穷序列:由字母表中的符号组成的任何有穷序列 例:例:0 0,1,1,01,1001,1
3、0,011,011,.空符号串空符号串:无任何符号的符号串,用:无任何符号的符号串,用表示表示 C语言的字母表 Aa,b,0,1,9,+,_/,(,),=if,else,for.不对不对如如=if,else,for,while符号就是字符,对吗?符号就是字符,对吗?编编 译译 原原 理理2023年2月15日符号串的前缀和后缀符号串的前缀和后缀:从符号串从符号串s s的尾部删去若干个的尾部删去若干个(包括包括0 0个个)符号之后所余下的符号之后所余下的部分称为部分称为s s的前缀的前缀,0 0,0101及及011011都是符号串都是符号串011011的前缀的前缀,1 1,1111及及011011
4、都是符号串都是符号串011011的后缀的后缀符号串集合符号串集合:若集合:若集合A A中的一切元素都是某字母表上的符号中的一切元素都是某字母表上的符号串,则称串,则称A A为该字母表上的符号串集合。为该字母表上的符号串集合。例:例:=a a,b b,c A=a,aac A=a,aa,ac,ac编编 译译 原原 理理2023年2月15日符号串的运算符号串的运算符号串符号串x x和和y y的的连接连接:是把是把y y的符号写在的符号写在x x的符号之后的符号之后得到的符号串得到的符号串xyxy 例如例如x=00 x=00,y=11y=11,则,则xyxy=0011=0011对于任意一个符号串对于任
5、意一个符号串s s,有,有s=s=s s=s=s 符号串的符号串的连接运算连接运算编编 译译 原原 理理2023年2月15日符号串自身连接符号串自身连接n n次得到的符号串次得到的符号串s sn n 定义为定义为 ssssssss ,包括,包括n n个个s s,称为符号串的,称为符号串的幂运算幂运算 s s0 0=,s s1 1=s=s,s s2 2=ss=ss,设设s=01s=01,则,则s s0 0=s s1 1=01=01s s2 2=0101=0101 符号串的符号串的幂运算幂运算编编 译译 原原 理理2023年2月15日设设A A、B B为符号串集合,则为符号串集合,则A A和和B
6、B的的乘积乘积定义为:定义为:ABAB xy xy|xA,yB|xA,yB例如,例如,A Aa,ba,b,B=c,dB=c,d则则AB=AB=符号串集合的乘积符号串集合的乘积ac,ad,bc,bdac,ad,bc,bd 编编 译译 原原 理理2023年2月15日有符号串集合有符号串集合A,定义,定义A0=,A1=A,A2=AA,A3=AAA,AnAn-1A=AAn-1 ,n0例如,例如,A A0,10,1,则,则A A0 0=A A1 1=A A2 2=A A3 3=符号串集合的幂运算符号串集合的幂运算0,10,100,01,10,1100,01,10,11000,001,010,011,10
7、0,101,110,111000,001,010,011,100,101,110,111编编 译译 原原 理理2023年2月15日设设A A是符号串集合,定义是符号串集合,定义 A A1 A2 A3 An 称为集合称为集合A A的的正闭包正闭包。A*A0 A称为集合称为集合A A的的闭包闭包。例:A=x,y A?A*?x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A1 A2 A3,x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A0 A1 A2 A3符号串集合的闭包运算符号串集合的闭包运算编编 译译 原原 理理2023年2月15日的闭包的闭包*表示表示 上的一
8、切符号串(包括上的一切符号串(包括)组成的集合)组成的集合的正闭包的正闭包+表示表示 上的上的除除外的所有符号串组成的集合外的所有符号串组成的集合例:例:=a,b=a,b *=,a,b,aa,ab,ba,bb,aaa,aab=,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab=a,b,aa,ab,ba,bb,aaa,aab,.2*.32*编编 译译 原原 理理2023年2月15日若A为某语言的字母表 Aa,b,0,1,9,+,_/,(,),=if,else,for.B为单词集 B=if,else,for,则B A*。语言的句子是定义在B上的符号
9、串。若令C为句子集合,则C B*,程序 C为什么对符号、符号串、符号串集合以及它们的运算感兴趣?为什么对符号、符号串、符号串集合以及它们的运算感兴趣?编编 译译 原原 理理2023年2月15日语言语言是由句子组成的集合,是由一组符号所构成的集合是由句子组成的集合,是由一组符号所构成的集合字母表字母表 上上的一个语言是的一个语言是 上的一些符号串的集合上的一些符号串的集合字母表字母表 上上的每个语言是的每个语言是*的一个子集的一个子集集合a,aa,aaa,或表示为w|w*且w=an,n1 为字母表上的一个语言 例如:字母表=a,b,*=,a,b,aa,ab,ba,bb,aaa,aab,集合ab,
10、aabb,aaabbb,anbn,或表示为w|w*且w=anbn,n1为字母表上的一个语言编编 译译 原原 理理2023年2月15日2.22.2文法和语言的形式定义文法和语言的形式定义 文法文法是对语言结构的定义与描述。(或称为是对语言结构的定义与描述。(或称为“语法语法”)。)。:=“=”:=“+”|“*”:=“(”“)”|编编 译译 原原 理理2023年2月15日赋值语句赋值语句标识符标识符表达式表达式表达式表达式表达式表达式表达式表达式标识符标识符整数整数标识符标识符表达式表达式y=x+r*6y =x+r*6编编 译译 原原 理理2023年2月15日 例:有一句子:“我是大学生”。这是一
11、个在语法、语义上都正确定句子,该句子的结构(称为语法结构)是由它的语法决定的。在本例中它为“主谓结构”。如何定义句子的合法性?有穷语言:只需逐一列举句子无穷语言:使用文法定义句子的结构,用适当条数的规 则把语言的全部句子描述出来。文法是以有穷的集 合刻划无穷的集合的工具。文法的非形式定义文法的非形式定义编编 译译 原原 理理2023年2月15日 1.1.语法规则语法规则:我们通过建立一组规则,来描述句子的语法:我们通过建立一组规则,来描述句子的语法结构结构。规定用规定用“:=”:=”表示表示“由由组成组成”。:=:=:=:=|:=:=你你|我我|他他:=:=王民王民|大学生大学生|工人工人|英
12、语英语:=:=:=:=是是|学习学习:=:=|文法的文法的BNF表示表示编编 译译 原原 理理2023年2月15日2.2.由规则推导句子由规则推导句子:有了一组规则之后,可以按照一定的方式:有了一组规则之后,可以按照一定的方式用它们去推导或产生句子。用它们去推导或产生句子。推导方法:从一个要识别的符号开始推导,即用相应规则的推导方法:从一个要识别的符号开始推导,即用相应规则的右部右部来替代规则的来替代规则的左部左部,每次仅用一条规则去进行推导。,每次仅用一条规则去进行推导。=这种推导一直进行下去,直到所有带这种推导一直进行下去,直到所有带的符号都由终结符号的符号都由终结符号替代为止。替代为止。
13、编编 译译 原原 理理2023年2月15日 =我我=我我 =我我是是 =我是我是=我是我是大学生大学生:=:=:=:=|:=:=你你|我我|他他:=:=王民王民|大学生大学生|工人工人|英语英语:=:=:=:=是是|学习学习:=:=|推导方法:推导方法:从一个要识别的符号从一个要识别的符号开始推导,即用相应规则的开始推导,即用相应规则的右部右部来替代规则的来替代规则的左部左部,每次仅用一条规则去进行推导。每次仅用一条规则去进行推导。编编 译译 原原 理理2023年2月15日例:有一英语句子:例:有一英语句子:The big elephant ate the peanut.:=:=:=:=:=:
14、=the:=:=big:=:=elephant:=:=:=:=ate:=:=:=:=peanut编编 译译 原原 理理2023年2月15日 =the =the big =the big elephant =the big elephant =the big elephant ate =the big elephant ate =the big elephant ate the =the big elephant ate the peanut:=:=:=:=:=:=the:=:=big:=:=elephant|peanut:=:=:=:=ate:=:=编编 译译 原原 理理2023年2月15日上
15、述推导可写成=the big elephant ate the peanut+说明:(1)有若干语法成分同时存在时,我们总是从最左的语法成 分进行推导,这称之为最左推导,类似的有最右推导(一般推 导)。(2)从一组规则可推出不同的句子,如以上规则还可推出“大象吃象”、“大花生吃象”、“大花生吃花生”等句子,它们 在语法上都正确,但在语义上都不正确。所谓文法文法是在形式上对句子结构的定义与描述,而未涉及语义问题。编编 译译 原原 理理2023年2月15日文法文法GS=(VN,VT,P,S)VN:非终结符号集:非终结符号集 VT:终结符号集:终结符号集 P:产生式或规则的集合产生式或规则的集合 S
16、:开始符号(识别符号)开始符号(识别符号)S VN,S至少要在至少要在 一条规则中作为左部出现一条规则中作为左部出现VVN VT称为文法的字母表称为文法的字母表补补:规则的定义规则的定义:或或V+且至少有一个非终结符,而且至少有一个非终结符,而(VN VT)*文法的形式定义文法的形式定义编编 译译 原原 理理2023年2月15日G=(VT,VN,S,P),其中,其中:VN=表达式表达式VT=+,*,(,),iS=表达式表达式P=表达式表达式表达式表达式+表达式表达式 表达式表达式表达式表达式*表达式表达式 表达式表达式(表达式表达式)表达式表达式i 【例【例2.1】程序语言中只含】程序语言中只
17、含+、*运算的算术表达式,用运算的算术表达式,用i表示变量或常数,其文法可以表示为:表示变量或常数,其文法可以表示为:描述了表达式的描述了表达式的语法规则语法规则 编编 译译 原原 理理2023年2月15日几点说明几点说明:产生式左边符号构成集合产生式左边符号构成集合VN,且,且 S VN给定一个给定一个 文法,实际只需给出产生式集合,并指定识别符号文法,实际只需给出产生式集合,并指定识别符号G表达式表达式:表达式表达式表达式表达式+表达式表达式表达式表达式表达式表达式*表达式表达式表达式表达式(表达式表达式)表达式表达式iVN:代表程序的语法成份,如:代表程序的语法成份,如“表达式表达式”,
18、它不会,它不会 出现在程序中出现在程序中VT:会出现在程序中,如:会出现在程序中,如i+i编编 译译 原原 理理2023年2月15日有些产生式具有相同的左部,可以和在一起有些产生式具有相同的左部,可以和在一起GE:EE+E|E*E|(E)|i 编编 译译 原原 理理2023年2月15日GS:SL|SL|SDLa|b|zD0|1|9【例【例2.2】某种语言的标识符是以字母开头的字母数字】某种语言的标识符是以字母开头的字母数字串,如果用串,如果用L表示表示,D表示表示,用,用S表示字表示字母数字串母数字串 描述了标识符的描述了标识符的词法规则词法规则 编编 译译 原原 理理2023年2月15日例:
19、无符号整数的文法:例:无符号整数的文法:G|00|1|2|3|9描述了无符号整描述了无符号整数的词法规则数的词法规则 编编 译译 原原 理理2023年2月15日说明说明:终结符集是输入字符集,它是构成单词的最基本元素终结符集是输入字符集,它是构成单词的最基本元素终结符集是经词法分析识别后的单词集,如变量终结符集是经词法分析识别后的单词集,如变量i,i,运运算符算符+、*和分界符和分界符(、),它们被视为语法分析中最基,它们被视为语法分析中最基本元素本元素 描述语法规则的文法描述语法规则的文法GE:EE+E|E*E|(E)|i 描述词法规则的文法描述词法规则的文法GS:SL|SL|SDLa|b|
20、zD0|1|9编编 译译 原原 理理2023年2月15日文法的表示方法文法的表示方法3.语法图语法图2.EBNF:扩充的扩充的BNF的元符号:的元符号:,:=,|,(,)字母字母 字母字母 数字数字 数字数字 标识符标识符无符号整数无符号整数1.BNF的元符号:的元符号:,:=,|编编 译译 原原 理理2023年2月15日推导的形式定义推导的形式定义如果如果是文法是文法G=(VT,VN,S,P)的的一个产生式,一个产生式,V*,有符号串,有符号串x,y满足满足x=,y=,则称则称y是是x的的直接推导直接推导,也可以说,也可以说,y直接归约直接归约到到x,记作,记作x y。直接推导:用产生式的右
21、部替换产生式的左部直接推导:用产生式的右部替换产生式的左部直接归约:用产生式的左部替换产生式的右部的过程直接归约:用产生式的左部替换产生式的右部的过程 编编 译译 原原 理理2023年2月15日S=SD,使用规则使用规则SSD,其中,其中=;SD=LD,使用规则使用规则SL,其中,其中=,=D;LD=aD,使用规则使用规则La,其中,其中=,=D;aD=a1,使用规则使用规则D1,其中,其中=a,=。GS:SL|SL|SDLa|b|zD0|1|9根据文法和推导的定义,可推出终结符号串根据文法和推导的定义,可推出终结符号串编编 译译 原原 理理2023年2月15日 1 1 0(6)=(1)=(3
22、)(5)=(2)当符号串已没有非终结符号时,推导就必须终止。因为终结符不可能出现在规则左部,所以将在规则左部出现的符号称为非终结符号。例如:例如:G (1)(2)(3)(4)0|1|2|3|9编编 译译 原原 理理2023年2月15日如果存在直接推导序列:如果存在直接推导序列:x y0 y1 y2yn=y则称这个序列是一个从则称这个序列是一个从x至至y的长度为的长度为n(n0)的)的推推导导,或称,或称y归约归约到到x,记作,记作x y。若有若有x y,或,或x=y,则记作,则记作x y。=*=例:例:x S SD LD aD a1=yGS:SL|SL|SDLa|b|zD0|1|9=记作记作x
23、 y或记作或记作x y *=编编 译译 原原 理理2023年2月15日文法文法GS (1)句型句型:x是句型是句型 S ,且且 V*;(2)句子句子:x是句子是句子 S ,且且,VT*;(3)语言语言:L(GS)=|VT*,S ;+文法GS所产生的所有句子的集合*句子是所有终结符号组成的句型语言的形式定义语言的形式定义GE:EE+E|E*E|(E)|i 句型:句型:E+EE+E*EE+E*iE+i*i句子:句子:i+ii*ii+i*i(i+i)*i 编编 译译 原原 理理2023年2月15日 形式语言理论可以证明以下两点:形式语言理论可以证明以下两点:(1)G L(G););(2)L(G)G1
24、,G2,Gn;已知文法,求语言,通过推导;已知文法,求语言,通过推导;已知语言,构造文法,无形式化方法,更多是凭经验已知语言,构造文法,无形式化方法,更多是凭经验编编 译译 原原 理理2023年2月15日例:例:GS S:=:=aSb|ab求其所产生的语言。求其所产生的语言。若S:=:=aSb|,如何?L(GS)=anbn|n1L(GS)=anbn|n0已知文法,求语言,通过推导课堂练习课堂练习1:GS S:=:=bA A:=:=aA|aL(GS)=ban|n1课堂练习课堂练习2:GS S:=:=AB A:=:=aA|a B:=:=bB|bL(GS)=ambn|m,n1编编 译译 原原 理理2
25、023年2月15日例:abna|n1,构造其文法 定义.G和G是两个不同的文法,若 L(G)=L(G),则G和G为等价文法。若n0,如何?课堂练习3:anbnci|n1,i 0,构造其文法 GS:S AB A aAb|ab BcB|G1S:SaBa,Bb|bBG2S:SaBa,Bb|BbG1S:SaBa,B|bBG2S:SaBa,B|Bb编编 译译 原原 理理2023年2月15日例:构造一个文法,使其描述的语言是无符号整数。例:构造一个文法,使其描述的语言是无符号整数。GS:SSD|DD0|1|2|3|4|5|6|7|8|9G|00|1|2|3|9编编 译译 原原 理理2023年2月15日编译
展开阅读全文