第2章形式语言的基本知识PPT讲稿.ppt
《第2章形式语言的基本知识PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第2章形式语言的基本知识PPT讲稿.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章形式语言的基本知识第1页,共68页,编辑于2022年,星期一二、二、符号串和符号串集合的运算符号串和符号串集合的运算 1.符号串相等符号串相等:若x、y是集合上的两个符号串,则xy,iff(当且仅当)组成x的每一个符号和组成y的每一个每一个符号依次相等。2.符号串的长度符号串的长度:x为符号串,其长度|x|等于组成该符 号串的符号个数。例:xSTR,|x|=3 3.3.符号串的联接符号串的联接:若x、y是定义在是上的符号串,且xXY,yYX,则x和y的联接 xyXYYX也是上的符号串。注意:一般xyyx,而xx第2页,共68页,编辑于2022年,星期一例:Aa,b,B=c,d,AB=?4
2、.符号串集合的乘积运算符号串集合的乘积运算:令A、B为符号串集合,定义 AB xy|xA,yB ac,ad,bc,bd 因为xxx,所以A=A=A符号串集合符号串集合:若集合A中的一切元素都是某字母表上的符号串,则称A为该字母表上的符号串集合。例:=a,b,c A=a,aa,ac第3页,共68页,编辑于2022年,星期一6.6.符号串集合的闭包运算符号串集合的闭包运算:设A是符号串集合,定义 A A1 A2 A3 An 称为集合A的正闭包。A*A0 A称为集合A的闭包。例:A=x,y A?A*?5.符号串集合的幂运算符号串集合的幂运算:有符号串集合A,定义A0=,A1=A,A2=AA,A3=A
3、AA,AnAn-1A=AAn-1 ,n0 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第4页,共68页,编辑于2022年,星期一的闭包的闭包*表示表示 上的一切符号串(包括上的一切符号串(包括)组成的集合)组成的集合的正闭包的正闭包+表示表示 上的上的除除外的所有符号串组成的集合外的所有符号串组成的集合例:例:=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,aa
4、a,aab,=a,b,aa,ab,ba,bb,aaa,aab,第5页,共68页,编辑于2022年,星期一7.符号串的符号串的 前缀:前缀:s为符号串,把s从尾部删去若干个(包括0个)符号后所余下的部分称为s的前缀。符号串abc的前缀是什么?8.符号串的符号串的 后缀:后缀:s为符号串,把s从前部删去若干个(包括0个)符号后所余下的部分称为s的后缀。符号串abc的后缀是什么?第6页,共68页,编辑于2022年,星期一若A为某语言的字母表 Aa,b,0,1,9,+,_/,(,),=.B为单词集 B=if,else,for,则B A*。语言的句子是定义在B上的符号串。若令C为句子集合,则C B*,程
5、序 C为什么对符号、符号串、符号串集合以及它们的运算感兴趣?为什么对符号、符号串、符号串集合以及它们的运算感兴趣?第7页,共68页,编辑于2022年,星期一语言语言是由句子组成的集合,是由一组符号所构成的集合是由句子组成的集合,是由一组符号所构成的集合字母表字母表 上上的一个语言是的一个语言是 上的一些符号串的集合上的一些符号串的集合字母表字母表 上上的每个语言是的每个语言是*的一个子集的一个子集 集合集合a,aa,aaa,a,aa,aaa,或表示为或表示为w|ww|w*且且w=aw=an n,n1,n1 为字为字母表母表 上上的一个语言的一个语言 例如:字母表=a,b,*=,a,b,aa,a
6、b,ba,bb,aaa,aab,集合集合ab,aabb,aaabbb,ab,aabb,aaabbb,a,an nb bn n,或表示为或表示为w|ww|w*且且w=aw=an nb bn n,n1,n1为字母表为字母表 上上的一个语言的一个语言第8页,共68页,编辑于2022年,星期一:=“=”:=“+”|“*”:=“(”“)”|文法文法第9页,共68页,编辑于2022年,星期一赋值语句赋值语句标识符标识符表达式表达式表达式表达式表达式表达式表达式表达式标识符标识符整数整数标识符标识符表达式表达式y=x+r*6y =x+r*6第10页,共68页,编辑于2022年,星期一3.2文法的非形式讨论文
7、法的非形式讨论 1.什么是文法:文法是对语言结构的定义与描述。即从形式上用于描述和规定语言结构的称为“文法”(或称为“语法”)。例:有一句子:“我是大学生”。这是一个在语法、语义上都正确定句子,该句子的结构(称为语法结构)是由它的语法决定的。在本例中它为“主谓结构”。如何定义句子的合法性?有穷语言:只需逐一列举句子无穷语言:使用文法定义句子的结构,用适当条数的规 则把语言的全部句子描述出来。文法是以有穷的集 合刻划无穷的集合的工具。第11页,共68页,编辑于2022年,星期一 2.2.语法规则语法规则:我们通过建立一组规则,来描述句子的语法结构结构。规定用“:=”表示“定义为”。:=:=|:=
8、你|我|他:=王民|大学生|工人|英语:=:=是|学习:=|文法的BNF表示第12页,共68页,编辑于2022年,星期一3.由规则推导推导句子:有了一组规则之后,可以按照一定的方式用它们去推导或产生句子。推导方法:从一个要识别的符号开始推导,即用相应规则的右部来替代规则的左部,每次仅用一条规则去进行推导。=这种推导一直进行下去,直到所有带的符号都由终结符号替代为止。第13页,共68页,编辑于2022年,星期一 =我我=我我 =我我是是 =我是我是=我是我是大学生大学生:=:=:=:=|:=:=你你|我我|他他:=:=王民王民|大学生大学生|工人工人|英语英语:=:=:=:=是是|学习学习:=:
9、=|推导方法:推导方法:从一个要识别的符号从一个要识别的符号开始推导,即用相应规则的开始推导,即用相应规则的右部右部来替代规则的来替代规则的左部左部,每次仅用一条规则去进行推导。每次仅用一条规则去进行推导。第14页,共68页,编辑于2022年,星期一例:有一英语句子:The big elephant ate the peanut.:=:=:=the:=big:=elephant:=:=ate:=:=peanut第15页,共68页,编辑于2022年,星期一 =the =the big =the big elephant =the big elephant =the big elephant at
10、e =the big elephant ate =the big elephant ate the =the big elephant ate the peanut:=:=:=:=:=:=the:=:=big:=:=elephant|peanut:=:=:=:=ate:=:=第16页,共68页,编辑于2022年,星期一上述推导可写成=the big elephant ate the peanut+说明:(1)有若干语法成分同时存在时,我们总是从最左的语法成 分进行推导,这称之为最左推导(一般推导),类似的有最右推导。(2)从一组规则可推出不同的句子,如以上规则还可推出“大象吃象”、“大花生吃象
11、”、“大花生吃花生”等句子,它们 在语法上都正确,但在语义上都不正确。所谓文法文法是在形式上对句子结构的定义与描述,而未涉及语义问题。第17页,共68页,编辑于2022年,星期一 4.语法树:我们用语法树来描述一个句子的语法结构。Thebigelephantatethepeanut语法成分(在形式语言中又称“非终结符”)单词符号(在形式语言中又称“终结符号”)第18页,共68页,编辑于2022年,星期一3.3.1文法的定义文法的定义3.3 文法和语言的形式定义 定义1.文法GS=(Vn,Vt,P,S)Vn:非终结符号集 Vt:终结符号集 P:产生式或规则的集合 S:开始符号(识别符号)SVn,
12、S至少要在 一条规则 中作为左部出现VVn Vt称为文法的字汇表规则:U:xU Vn,xV*补补:规则的定义规则的定义规则是一个有序对(U,x),通常写为:U:x 或U x第19页,共68页,编辑于2022年,星期一文法GS=(Vn,Vt,P,S)Vn:代表程序的语法成份,如“赋值语句”,它不会 出现在程序中Vt:会出现在程序中,如i=i+1第20页,共68页,编辑于2022年,星期一P=;0;1;9;S=;例:无符号整数的文法:G=(Vn,Vt,P,S)Vn,Vt =0,1,2,3,9第21页,共68页,编辑于2022年,星期一几点说明几点说明:产生式左边符号构成集合Vn,且 S Vn有些产
13、生式具有相同的左部,可以和在一起例、;|;0|1|2|3|9给定一个 文法,实际只需给出产生式集合,并指定识别符号例、G ;|;0|1|2|3|9第22页,共68页,编辑于2022年,星期一3.3.2 推导的形式定义推导的形式定义 定义2:文法G(Vn,Vt,P,S),若有vxUy,wxuy,其中x、y V*,UVn,u V*,若U:uP,则v w。若xy,有U:u,则U u根据文法和推导定义,可推出终结符号串,推出句子来。第23页,共68页,编辑于2022年,星期一 1 1 0(6)=(1)=(3)(5)=(2)当符号串已没有非终结符号时,推导就必须终止。因为当符号串已没有非终结符号时,推导
14、就必须终止。因为终结符不可能出现在规则左部,所以将在规则左部出现的符终结符不可能出现在规则左部,所以将在规则左部出现的符号称为非终结符号。号称为非终结符号。例如:例如:G (1);(2)(3)(4)0|1|2|3|9文法G:vxUy,wxuy,其中x、y V*,UVn,uV*,若U:uP,则v w。若xy,有U:u,则U u第24页,共68页,编辑于2022年,星期一 定义3:文法G,U0,U1,U2,,Un V+if v=U0 U1 U2 Unw,且n0 则称v产生w,或w归约到v,并记作 v=w =例:=1 =1 0即 10=第25页,共68页,编辑于2022年,星期一 定义4:文法G,v
15、,w V+if v w,或v=w,则v w *=定义5:规范推导:有xUy=xuy,if y Vt*,则此推导为规范的|直观意义:规范推导最右推导最右推导:若符号串中有两个以上的非终结符时,先推右边的。最左推导:若符号串中有两个以上的非终结符时,先推左边的。第26页,共68页,编辑于2022年,星期一3.3.3 语言的形式定义语言的形式定义 定义6:文法GS (1)句型句型:x是句型 S x,且xV*;(2)句子句子:x是句子 S x,且xVt*;(3)语言语言:L(GS)=x|xVt*,S x;*文法GS所产生的所有句子的集合 形式语言理论可以证明以下两点:(1)G L(G);(2)L(G)
16、G1,G2,Gn;已知文法,求语言,通过推导;已知语言,构造文法,无形式化方法,更多是凭经验*句子是所有终结符号组成的句型第27页,共68页,编辑于2022年,星期一例例3.1: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第28页,共68页,编辑于2022年,星期一例3.2:abna|n1,构造
17、其文法 定义7.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第29页,共68页,编辑于2022年,星期一3.3.4 递归文法递归文法1.递归规则递归规则:规则右部有与左部相同的符号 对于 U:=xUy 若x=,即U:=Uy,左递归;若y=,即U:=xU,右递归;2.递归文法递归文法:文法G,存在U Vn if U=U,则G为递归文法;if U=U,则G为左递
18、归文法;if U=U,则G为右递归文法;+第30页,共68页,编辑于2022年,星期一4.递归文法的优点:可用有穷条规则,定义无穷语言 例:对于前面给出的无符号整数的文法是有递归文法,用13条规则就可以定义出所有的无符号整数。若不用递归文法,那将要用多少条规则呢?!3.左递归文法的缺点:不能用自顶向下的方法来进行语法分析会造成死循环(后面将详细论述)第31页,共68页,编辑于2022年,星期一3.3.5 句型的短语、简单短语和句柄句型的短语、简单短语和句柄定义8.给定文法GS,w=xuyV+,为该文法的句型,若 S=xUy,且U=u,则u是句型w相对于U的短语;若 S=xUy,且U=u,则u是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 基本知识 PPT 讲稿
限制150内