第四章 文法和语言.ppt
《第四章 文法和语言.ppt》由会员分享,可在线阅读,更多相关《第四章 文法和语言.ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 文法和语言文法和语言本章目的本章目的 为语言的语法描述寻求工具为语言的语法描述寻求工具工具要对程序设计语言给出精确无二义的语法描工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读)述。(严谨、简洁、易读)形式形式工具工具-形式语言抽象地定义为一个数学形式语言抽象地定义为一个数学系统。系统。“形式形式”是指这样的事实:语言的是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来所有规则只以什麽符号串能出现的方式来陈述陈述1本章知识点本章知识点(内容内容)引言和预备知识文法和语言的形式定义文法和语言的形式定义文法的类型文法的类型上下文无关文法及其语法树上下文无关文法
2、及其语法树上下文无关文法上下文无关文法的的句型分析句型分析有关文法实用中的一些说明有关文法实用中的一些说明2文法的直观概念和语言概述语言概述当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用第2章所介绍的EBNF来表示这种句子的构成规则:3“我是大学生”。是汉语的一个句子句子=主语谓语主语=代词名
3、词代词=我你他名词=王明大学生工人英语谓语=动词直接宾语动词=是学习直接宾语=代词名词 4有了一组规则以后,按照如下方式用它们导出句子:开始去找=左端的带有句子的规则并把它由=右端的符号串代替,这个动作表示成:句子主语谓语,然后在得到的串主语谓语中,选取主语或谓语,再用相应规则的=右端代替之。比如,选取了主语,并采用规则主语=代词,那么得到:主语谓语代词谓语,重复做下去,句子:“我是大学生”的全部动作过程是:句子主语谓语代词谓语我谓语我动词直接宾语我是直接宾语我是名词 我是大学生 5“我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构
4、合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。6英语句子sentence subject This|Computers|Iverb-phrase|adverb neververb is|run|am|tellobject the|a|noun university|world|cheese|liesThis is a university.Computers run the world.I am the cheese.I never tell lies.7语言概述语言概述语言是由句子组成的集合,是由一组符号所构成的
5、语言是由句子组成的集合,是由一组符号所构成的集合。集合。汉语汉语-所有符合汉语语法的句子的全体所有符合汉语语法的句子的全体英语英语-所有符合英语语法的句子的全体所有符合英语语法的句子的全体程序设计语言程序设计语言-所有该语言的程序的全体所有该语言的程序的全体 每个句子构成的规律每个句子构成的规律研究语言研究语言 每个句子的含义每个句子的含义 每个句子和使用者的关系每个句子和使用者的关系8研究程序设计语言研究程序设计语言 每个程序构成的规律每个程序构成的规律 每个程序的含义每个程序的含义 每个程序和使用者的关系每个程序和使用者的关系语言研究的三个方面语言研究的三个方面 语法语法 Syntax 语
6、义语义 Semantics 语用语用 Pragmatics9语法语法-表示构成语言句子的各个记号之间的表示构成语言句子的各个记号之间的组合规律组合规律语义语义-表示各个记号的特定含义。(各个记表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)号和记号所表示的对象之间的关系)语用语用-表示在各个记号所出现的行为中,它表示在各个记号所出现的行为中,它们的来源、使用和影响。们的来源、使用和影响。10每每种种语语言言具具有有两两个个可可识识别别的的特特性性,即即语语言言的的形式和该形式相关联的意义。形式和该形式相关联的意义。语语言言的的实实例例若若在在语语法法上上是是正正确确的的,其其相
7、相关关联联的的意意义义可可以以从从两两个个观观点点来来看看,其其一一是是该该句句子子的的创创立立者者所所想想要要表表示示的的意意义义,另另一一是是接接收收者者所所检检验验到到的的意意义义。这这两两个个意意义义并并非非总总是是一一样样的的,前前者者称称为为语语言言的的语语义义,后后者者是是其其语语用用意意义义。幽幽默默、双双关关语语和和谜谜语语就就是是利利用这两方面意义间的差异。用这两方面意义间的差异。11如如果果不不考考虑虑语语义义和和语语用用,即即只只从从语语法法这这一一侧侧面面来来看看语语言言,这这种种意意义义下下的的语语言言称称作作形形式式语语言言。形形式式语语言言抽抽象象地地定定义义为
8、为一一个个数数学学系系统统。“形形式式”是是指指这这样样的的事事实实:语语言言的的所所有有规规则则只只以以什什麽麽符符号号串串能能出出现现的的方方式式来来陈陈述述。形形式式语语言言理理论论是是对对符符号号串串集集合合的的表表示示法法、结结构构及及其其特特性性的的研研究究。是是程程序序设设计计语语言言语语法法分分析析研研究的基础。究的基础。12有关定义和记号有关定义和记号回回顾顾符号:可以相互区别的记号(元素)。符号:可以相互区别的记号(元素)。字母表字母表:符号(元素)的非空有穷集合。:符号(元素)的非空有穷集合。符号串:由字母表符号串:由字母表 中的符号组成的任何有穷序中的符号组成的任何有穷
9、序列称为该字母表上的符号串。列称为该字母表上的符号串。1.空符号串空符号串(没没有有符号的符号串符号的符号串)是是 上的符号串上的符号串 2.若若x是是 上上的符号串的符号串,a是是 的元素的元素,则则xa是是 上的符号串上的符号串 3.y是是 上的符号串上的符号串,当且仅当它可以由当且仅当它可以由1和和2导出。导出。例如:例如:=a,b =a,b ,a,b,a,b,aaaa,abab,aabbaaabba都都是是 上的符号串上的符号串13有关定义和记号有关定义和记号回回顾顾 符号串符号串s的头(前缀):移走符号串的头(前缀):移走符号串s尾部的零尾部的零个或多于零个符号得到的符号串个或多于零
10、个符号得到的符号串.如:如:b是符号串是符号串banana的一个前缀的一个前缀.符号串符号串s的尾(后缀):删去符号串的尾(后缀):删去符号串s头部的零头部的零个或多于零个符号得到的符号串个或多于零个符号得到的符号串.如如:nana是符号串是符号串banana的一个后缀的一个后缀.符号串符号串s的子串:从的子串:从s中删去一个前缀和一个后中删去一个前缀和一个后缀得到的符号串缀得到的符号串.如如:ana是符号串是符号串banana的一个子串的一个子串.14对于每个符号串对于每个符号串s,s和和两者两者都都是符号串是符号串s的前的前缀,后缀和子串。缀,后缀和子串。符号串符号串s的真前缀,真后缀,真
11、子串:任何非空的真前缀,真后缀,真子串:任何非空符号串符号串 x,相应地,是相应地,是s的前缀,后缀或子串,的前缀,后缀或子串,并且并且 s x 符号串的运算符号串的运算符号串的长度:符号串中符号的个数符号串的长度:符号串中符号的个数.符号串符号串s的长度的长度记为记为|s|。的长度为的长度为0连接:符号串连接:符号串x x、y y的连接的连接,是把是把y y的符号写在的符号写在x x的符号的符号之后得到的符号串之后得到的符号串xy xy 如如 x=x=abab,y=,y=cd cd 则则 xyxy=abcd abcd 有有a=a a=a 方幂:符号串自身连接方幂:符号串自身连接n n次得到的
12、符号串次得到的符号串 a an n 定义为定义为 aaaaaa aa n n个个a aa a1 1=a,a=a,a2 2=aaaa则则a a0 0=15符号串集合:若集合符号串集合:若集合A中所有元素都是某字母中所有元素都是某字母表表 上的符号串,则称上的符号串,则称A为字母表为字母表 上的符号上的符号串集合。串集合。两个符号串集合两个符号串集合A和和B的乘积定义为的乘积定义为 AB=xyxy|x|x A A且且y y B B 若若 集合集合A=abab,cdecde B=0,10,1 则则 AB=ab1,ab0,cde0,cde1ab1,ab0,cde0,cde1 使用使用 *表示表示 上的
13、一切符号串(包括上的一切符号串(包括)组组成的集合。成的集合。*称为称为的闭包的闭包。上的上的除除外外的所有符号串组成的集合记为的所有符号串组成的集合记为+。+称为称为的正闭包的正闭包。16例:例:=a,b=a,b *=,a,b,=,a,b,aaaa,abab,baba,bb,bb,aaaaaa,aabaab,+=a,b,=a,b,aaaa,abab,baba,bb,bb,aaaaaa,aabaab,17有关定义和记号有关定义和记号语言语言是由句子组成的集合,是由一组符号所构成的集合。换言之,字母表上的一个语言是上的一些符号串的集合 (字母表上的每个语言是*的一个子集)。例如:字母表=a,b,
14、*=,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 为字母表上的一个语言。是一个语言。即 是一个语言。18给出语言给出语言上上的有关运算的有关运算 设设L是(是(上的)一个语言上的)一个语言,M是(是(上的)一个语上的)一个语言言,语言语言L和和M的并,交,差,补的并,交,差,补是一个语言。是一个语言。语言语言L和和M的并为的并为 L M,是一个语言是一个语言:w|w is w|w is in L or is in M in L or
15、is in M 如:如:L1=a,b,=a,b,y,z My,z M1 1=1,2=1,28,9 8,9 L1 M1 1=a,b,=a,b,y,z y,z,1,21,28,9 8,9 语言语言L和和M的连接的连接是一个语言,记是一个语言,记为为 LM LM=stst|s|sL且且 t tM 如:如:L1M1=a1,b1,=a1,b1,y1,z1,a2,b2y1,z1,a2,b2a9a9z9 z9 有有L =L=L。L的的n次连接次连接Ln=LL.L 19语言语言上上的运算的运算 语言语言L的的 闭包闭包记记为为 L*,L*=L0 L1 L2 .L0=,Ln=L Ln-1=Ln-1 L,n 1
16、语言语言L的正的正 闭包闭包记记为为 L+,L+=L1 L2 L3.L+=LL*=L*L L*=L+如:如:L1 =a,b,=a,b,y,z My,z M1 1=1,2=1,28,9 8,9 (L1 M1 1)=a,b,=a,b,y,z y,z,1,21,28,98,9 (L1 M1 1)*=a,b,=a,b,y,z y,z,1,21,28,98,9,aa,1a,xyz,6789st.L1(L1 M1 1)*=所有字母打头的字母和数字符号所有字母打头的字母和数字符号串串 20文法和语言的形式定义文法和语言的形式定义如何来描述一种语言?如何来描述一种语言?如果语言是有穷的(只含有有穷多个句子),
17、可以将如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示句子逐一列出来表示如果语言是无穷的,找出语言的有穷表示。语言的有如果语言是无穷的,找出语言的有穷表示。语言的有穷表示有两个途经:穷表示有两个途经:生成方式生成方式(文法):语言中的每个句子可以用严格(文法):语言中的每个句子可以用严格定义的规则来构造。定义的规则来构造。识别方式识别方式(自动机):用一个过程,当输入的一任(自动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止意串属于语言时,该过程经有限次计算后就会停止并回答并回答“是是”,若不属于,要麽能停止,若不属于,要麽能停止并回答并回答“不不是
18、是”,(要麽永远继续下去。),(要麽永远继续下去。)21文法即是生成方式描述语言的:语言中的每文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造个句子可以用严格定义的规则来构造.下面下面给出文法的定义给出文法的定义.进而在进而在文法的定义的基础文法的定义的基础上上,给出给出推导的概念推导的概念,句型、句子和语言的句型、句子和语言的定义定义.22定义定义文法G定义为四元组(VN,VT,P,S)其中VN为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;VN,VT和P是非空有穷集。S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中
19、作为左部出现。VN和VT不含公共的元素,即VN VT=用V表示VN VT,称为文法G的字母表或字汇表规则规则,也称重写规则重写规则、产生式产生式或生成式生成式,是形如或=的(,)有序对,其中是字母表V的正闭包V+中的一个符号,是V*中的一个符号。称为规则的左部,称作规则的右部。23Define a grammarDefine a grammarA A grammar G grammar G is defined as a 4-is defined as a 4-tuple tuple(VN,VT,P,S)VN is a set of nonterminals VT is a set of te
20、rminals 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 nonterminalsasthestart symbolV=VN VT is the alphabet of G24文法的定义文法的定义例例 文法文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号为开始符号25例例 文法文法G=(VN,VT,P,S)VN=标识符,字母,数字标识符,
21、字母,数字VT=a,b,c,x,y,z,0,1,9P=a,z z 0,0,99 S=26文法的写法文法的写法 1 1 G G:S Sa aA Ab A Aabab A Aa aA Ab A A 2 GS 2 GS:A Aabab A Aa aA Ab A A S Sa aS Sb 3 GSGS:A Aabab|a aA Ab|S Sa aS Sb27元元符号:=|习惯表示习惯表示 大写字母:终结符大写字母:终结符 小写字母:非终结符小写字母:非终结符S ABA Ax|yB z28推导的定义推导的定义直接推导直接推导“”是文法是文法G G的产生式,若有的产生式,若有v,wv,w满足:满足:v=,
22、w=,v=,w=,其中其中VV*,V,V*则称则称v v直接直接推导推导到到w,w,记作记作 v v w w 也称也称w w直接直接归约归约到到v v例:例:G G:S0S1,S01 0S100S1100S11000S111000S11100001111 S 0S129.VAR;BEGINREAD()END.VARA;BEGINREAD()END.30推导的定义推导的定义若存在若存在vw0w1.wn=w,(n0)则记为则记为v=+w,v推导出推导出w,或或w归约到归约到v若有若有v=+w,或或v=w,则记为则记为v=*w31例:例:G G:S0S1,S010S100S1100S11000S11
23、1000S11100001111 S 0S100S11000S11100001111 S=+00001111 S=*S 00S11=*00S1132What are DerivationsDerivationisawaythatagrammardefinesalanguage.IntheprocessofderivationaproductionistreatedasarewritingruleinwhichthenonterminalontheleftsideisreplacedbythestringontherightsideoftheproductionAproductionu v is
24、usedbyreplacinganoccurrenceofu byv.Formally,ifweapplyaproductionp Ptoastringofsymbolsw inVtoyieldanewstringofsymbolsz inV,wesaythatz derivedfromw usingp,writtenasfollows:w=pz.Wealsouse:w=z z derivesfromw(productionunspecified)w=*z z derivesfromw usingzeroormoreproductionsw=+z z derivesfromw usingone
25、ormoreproductions33句型、句子的定义句型、句子的定义句型句型有文法有文法G,若若S=*x,则称则称x是文法是文法G的句型。的句型。句子句子有文法有文法G,若若S=*x,且且xVVT T*,则称则称x是文法是文法G的句子。的句子。例:例:G G:S0S1,S01S 0S100S11000S11100001111G的句型S,0S1,00S11,000S111,00001111G的句子00001111,0134例:例:GE E:EE+T|TEE+T|T TT*F|F TT*F|F F(E)|a F(E)|aE EE+TT+TF+Ta+Ta+T*Fa+F*Fa+a*Fa+a*a句子:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 文法和语言 第四 文法 语言
限制150内