【教学课件】第四章文法和语言.ppt
《【教学课件】第四章文法和语言.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章文法和语言.ppt(105页珍藏版)》请在三一办公上搜索。
1、1,第四章文法和语言,本章目的 为语言的语法描述寻求工具工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读)形式工具-形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述,2,本章知识点(内容),引言和预备知识文法和语言的形式定义文法的类型上下文无关文法及其语法树上下文无关文法的句型分析有关文法实用中的一些说明,3,文法的直观概念和语言概述,当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。以自然语言为例,人们
2、无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用第2章所介绍的EBNF来表示这种句子的构成规则:,4,“我是大学生”。是汉语的一个句子,句子=主语谓语主语=代词名词代词=我你他名词=王明大学生工人英语谓语=动词直接宾语动词=是学习直接宾语=代词名词,5,有了一组规则以后,按照如下方式用它们导出句子:开始去找=左端的带有句子的规则并把它由=右端的符号串代替,这个动作表示成:句子 主语谓语,然后在得到的串主语谓语中,选取主语或谓语,再用相应规则的=右端代替之。比如,选取了主语,并采用规
3、则主语=代词,那么得到:主语谓语 代词谓语,重复做下去,句子:“我是大学生”的全部动作过程是:句子 主语谓语 代词谓语 我谓语 我动词直接宾语 我是直接宾语 我是名词 我是大学生,6,“我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。,7,英语句子,sentence subject This|Computers|Iverb-phrase|adverb neververb is|run|am|tellobjec
4、t the|a|noun university|world|cheese|liesThis is a university.Computers run the world.I am the cheese.I never tell lies.,8,语言概述,语言是由句子组成的集合,是由一组符号所构成的集合。汉语-所有符合汉语语法的句子的全体英语-所有符合英语语法的句子的全体程序设计语言-所有该语言的程序的全体 每个句子构成的规律研究语言 每个句子的含义 每个句子和使用者的关系,9,研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系语言研究的三个方面 语法 Syntax
5、语义 Semantics 语用 Pragmatics,10,语法-表示构成语言句子的各个记号之间的组合规律语义-表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)语用-表示在各个记号所出现的行为中,它们的来源、使用和影响。,11,每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。,12,如果不考虑语义和语用,即只从语法这一侧面来
6、看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。,13,有关定义和记号回顾,符号:可以相互区别的记号(元素)。字母表:符号(元素)的非空有穷集合。符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。1.空符号串(没有符号的符号串)是上的符号串 2.若x是上的符号串,a是的元素,则xa是上的符号串 3.y是上的符号串,当且仅当它可以由1和2导出。例如:=a,b,a,b,aa,ab,aabba都是上的
7、符号串,14,有关定义和记号回顾,符号串s的头(前缀):移走符号串s尾部的零个或多于零个符号得到的符号串.如:b是符号串banana的一个前缀.符号串s的尾(后缀):删去符号串s头部的零个或多于零个符号得到的符号串.如:nana是符号串banana的一个后缀.符号串s的子串:从s中删去一个前缀和一个后缀得到的符号串.如:ana是符号串banana的一个子串.,15,对于每个符号串s,s和两者都是符号串s的前缀,后缀和子串。符号串s的真前缀,真后缀,真子串:任何非空符号串 x,相应地,是s的前缀,后缀或子串,并且 s x 符号串的运算符号串的长度:符号串中符号的个数.符号串s的长度记为|s|。的
8、长度为0连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy 如 x=ab,y=cd 则 xy=abcd 有a=a 方幂:符号串自身连接n次得到的符号串 an 定义为 aaaa n个a a1=a,a2=aa则a0=,16,符号串集合:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串集合。两个符号串集合A和B的乘积定义为 AB=xy|xA且yB 若 集合A=ab,cde B=0,1 则 AB=ab1,ab0,cde0,cde1使用*表示上的一切符号串(包括)组成的集合。*称为的闭包。上的除外的所有符号串组成的集合记为+。+称为的正闭包。,17,例:=a,b*=
9、,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab,18,有关定义和记号,语言是由句子组成的集合,是由一组符号所构成的集合。换言之,字母表上的一个语言是上的一些符号串的集合(字母表上的每个语言是*的一个子集)。例如:字母表=a,b,*=,a,b,aa,ab,ba,bb,aaa,aab,集合ab,aabb,aaabbb,anbn,或表示为w|w*且w=anbn,n1为字母表上的一个语言。集合a,aa,aaa,或表示为w|w*且w=an,n1 为字母表上的一个语言。是一个语言。即 是一个语言。,19,给出语言上的有关运算,设L是(上的)一个语言,M
10、是(上的)一个语言,语言L和M的并,交,差,补是一个语言。语言L和M的并为 LM,是一个语言:w|w is in L or is in M 如:L1=a,b,y,z M1=1,28,9 L1M1=a,b,y,z,1,28,9 语言L和M的连接是一个语言,记为 LM LM=st|sL且 tM 如:L1M1=a1,b1,y1,z1,a2,b2a9z9 有L=L=L。L的n次连接Ln=LL.L,20,语言上的运算,语言L的 闭包记为 L*,L*=L0 L1 L2.L0=,Ln=L Ln-1=Ln-1 L,n1 语言L的正 闭包记为 L+,L+=L1 L2 L3.L+=LL*=L*L L*=L+如:L
11、1=a,b,y,z M1=1,28,9(L1M1)=a,b,y,z,1,28,9(L1M1)*=a,b,y,z,1,28,9,aa,1a,xyz,6789st.L1(L1M1)*=所有字母打头的字母和数字符号串,21,文法和语言的形式定义,如何来描述一种语言?如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示如果语言是无穷的,找出语言的有穷表示。语言的有穷表示有两个途经:生成方式(文法):语言中的每个句子可以用严格定义的规则来构造。识别方式(自动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要麽能停止并回答“不是”,(要麽永远继
12、续下去。),22,文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造.下面给出文法的定义.进而在文法的定义的基础上,给出推导的概念,句型、句子和语言的定义.,23,定义,文法G定义为四元组(VN,VT,P,S)其中VN为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;VN,VT和P是 非空有穷集。S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。VN和VT不含公共的元素,即VN VT=用V表示VN VT,称为文法G的字母表或字汇表规则,也称重写规则、产生式或生成式,是形如或=的(,)有序对,其中是字母表V的正闭
13、包V+中的一个符号,是V*中的一个符号。称为规则的左部,称作规则的右部。,24,Define a grammar,A grammar G is defined as a 4-tuple(VN,VT,P,S)VN is a set of nonterminals VT is a set of terminals P is a set of productions,each production consists of a left side,an arrow(or:=),and a right side S is a designation of one of the nonterminals
14、as the start symbolV=VN VT is the alphabet of G,25,文法的定义,例 文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号,例 文法G=(VN,VT,P,S)VN=标识符,字母,数字VT=a,b,c,x,y,z,0,1,9P=a,z 0,9 S=,27,文法的写法 1 G:SaAb Aab AaAb A 2 GS:Aab AaAb A SaSb 3 GS:Aab|aAb|SaSb,元符号:=|习惯表示 大写字母:终结符 小写字母:非终结符S ABA Ax|yB z,29,推导的定义,直接推导“”是文法G的产生式
15、,若有v,w满足:v=,w=,其中V*,V*则称v直接推导到w,记作 v w 也称w直接归约到v例:G:S0S1,S01 0S1 00S11 00S11 000S111 000S111 00001111 S 0S1,30,.VAR;BEGIN READ()END.VAR A;BEGIN READ()END.,31,推导的定义,若存在v w0 w1.wn=w,(n0)则记为v=+w,v推导出w,或w归约到v 若有v=+w,或v=w,则记为v=*w,32,例:G:S0S1,S010S1 00S1100S11 000S111000S111 00001111 S 0S1 00S11 000S111 0
16、0001111 S=+00001111 S=*S 00S11=*00S11,33,What are Derivations,Derivation is a way that a grammar defines a language.In the process of derivation a production is treated as a rewriting rule in which the nonterminal on the left side is replaced by the string on the right side of the productionA produc
17、tion u v is used by replacing an occurrence of u by v.Formally,if we apply a production p P to a string of symbols w in V to yield a new string of symbols z in V,we say that z derived from w using p,written as follows:w=p z.We also use:w=z z derives from w(production unspecified)w=*z z derives from
18、w using zero or more productionsw=+z z derives from w using one or more productions,34,句型、句子的定义,句型有文法G,若S=*x,则称x是文法G的句型。句子有文法G,若S=*x,且xVT*,则称x是文法G的句子。例:G:S0S1,S01S 0S1 00S11 000S111 00001111G的句型S,0S1,00S11,000S111,00001111G的句子00001111,01,35,例:GE:EE+T|T TT*F|F F(E)|aEE+T T+T F+T a+T a+T*F a+F*F a+a*F
19、 a+a*a句子:用符号a,+,*,(和)构成的算术表达式,36,文法,语言的定义,由文法G生成的语言记为L(G),它是文法G的一切句子的集合:L(G)=x|S=*x,其中S为文法的开始符号,且x VT*例:G:S0S1,S01L(G)=0n1n|n1,例 文法GS:(1)SaSBE(2)SaBE(3)EBBE(4)aBab(5)bBbb(6)bEbe(7)eEee L(G)=anbnen|n1,38,S a S BE(SaSBE)a aBEBE(SaBE)aabEBE(aBab)aabBEE(EBBE)aabbEE(bBbb)aabbeE(bEbe)aabbee(eEee)G生成的每个串都在
20、L(G)中L(G)中的每个串确实能被G生成,39,使用产生式(1)n-1次,得到推导序列:S=*an-1S(BE)n-1,然后使用产生式(2)一次,得到:S=*an-1S(BE)n-1 an(BE)n。然后从an(BE)n继续推导,总是对EB使用产生式(3)的右部进行替换,而最终在得到的串中,所有的B都先于所有的E。例如,若n=3,aaaBEBEBE aaaBBEEBE aaaBBEBEE aaaBBBEEE。即有:S=*anBnEn接着,使用产生式(4)一次,得到S=*anbBn-1En,然后使用产生式(5)n-1次得到:S=*anbnEn,最后使用产生式(6)一次,使用产生式(7)n-1次
21、,得到:S=*anbnen 也能证明,对于n1,串anbnen是唯一形式的终结符号串,40,文法的等价,若L(G1)=L(G2),则称文法G1和G2是等价的。如文法G1A:A0R 与G2S:S0S1 等价 A01 S01 RA1,41,文法的类型,通过对产生式施加不同的限制,Chomsky将文法分为四种类型:0型文法:对任一产生式,都有(VNVT)+,(VNVT)*1型文法:对任一产生式,都有|,仅仅 S除外2型文法:对任一产生式,都有VN,(VNVT)*3型文法:任一产生式的形式都为AaB或Aa,其中AVN,BVN,aVT,42,A hierarchy of grammars,Type 0:
22、free or unrestricted grammarsThese are the most general.Productions are of the form u v where both u and v are arbitrary strings of symbols in V,with u non-null.There are no restrictions on what appears on the left or right-hand side other than the left-hand side must be non-empty.Type 1:context-sen
23、sitive grammarsProductions are of the form uXw uvw where u,v and w are arbitrary strings of symbols in V,with v non-null,and X a single nonterminal.In other words,X may bereplaced by v but only when it is surrounded by u and w.(i.e.in a particular context).,43,Type 2:context-free grammarsProductions
24、 are of the form X v where v is an arbitrary string of symbols in V,and X is a single nonterminal.Wherever you find X,you can replace with v(regardless of context).Type 3:regular grammarsProductions are of the form X a or X aY where X and Y are nonterminals and a is a terminal.That is the left-hand
25、side must be a single nonterminal and the right-hand side can be either a single terminal by itself or with a single nonterminal.These grammars are the most limited in terms of expressive power.,44,文法的类型,例:1型(上下文有关)文法 文法GS:SCDAbbA CaCABaaB CbCBBbbBADaD CBDbD DAabD,45,文法的类型,例:2型(上下文无关)文法 文法GS:SABABS|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 文法 语言
链接地址:https://www.31ppt.com/p-5665066.html