第二章语言的基本知识.ppt





《第二章语言的基本知识.ppt》由会员分享,可在线阅读,更多相关《第二章语言的基本知识.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1,第二章 语言的基本知识,学习本章的目的。2.1 符号串2.2 文法和语言的定义2.3 分析树和二义性2.4 形式语言概观,2,学习本章的目的,构造编译程序的算法是从研究源程序及目标程序产生的,首先找到源语言的形式描述,根据这种描述,构造出相应的分析加工程序。语言分语法,语义和语用。程序语言语法的形式描述是很好用的,语义的形式描述不那磨好用,但它推动语言理论的发展。,3,2.1 符号串,2.1.1 字母表2.1 .2 符号串 一. 符号串的定义 二. 术语 三. 符号串的运算 四. 符号串集合的运算,4,字母表是符号的非空有穷集合。任何程序语言都有自己的字母表,例如: 1.计算机语言:由符号
2、“0”和“1”组成的字 母表,=0,1 2. ASCII字符集; 3. Pascal字母表为: = AZ, az, 09, +, -, *, /, , :, , ; ,., , (, ), , , , ,2.1.1 字母表,5,一. 符号串的定义(1) 是上的一个符号串。(2) 若x是上的符号串,而a是的元素, 则xa是上的符号串。(3) y是上的符号串,当且仅当它由(1)和 (2)导出。 由字母表中的符号所组成的的任何有穷 序列被称之为该字母表上的符号串,也称作字。,2.1.2 符号串,6,设s是符号串前缀:移走s的尾部的零个或多于零个符号后缀:删去s的头部的零个或多于零个符号子串: 从s中
3、删去一个前缀和一个后缀子序列: 从s中删去零个或多于零个符号(这些符号不要求是连续的)逆转(用SR表示):将S中的符号按相反次序写出而得到的符号串。长度:是该符号串中的符号的数目。例如|aab|=3,|=0。,二术语,7,:符号串s=banana前缀:,b,ba,ban,bana,banan,banana后缀:banana,anana,nana,ana,na,a, 子串: banana,anana,banan,anan, 真前缀,真后缀,真子串: xsx 子序列: baa(这些符号不要求是连续的)逆转(用SR表示):ananab长度:banana=6,例,8,1.连接:设x和y是符号串,它们的
4、连接 xy是把y的符号写在x的符号之后得到的符号串。例如,x=ba,y=nana,xy=banana.2.方幂:x0= ; x1=x; x2=xx; ;xn=xn-1x; 例如, x=ba, x1= ba, x2=baba, x3=bababa,.,三.符号串的运算,9,设L和M是两个符号串集合,则 1.合并:LMs|sL or sM 2.连接:LM st|sL and tM 3.方幂: L0=, L1L, L2LL, ., LnLn-1L 4. 语言L的Kleene闭包,记作L*, L*Li(i=0) =L0L1L2L3 5语言L的正闭包,记作L+(L+L L*) L+Li(i =1) =L
5、1L2L3L4,四. 符号串集合(语言)的运算,10,如:L=AZ,az D=09 1LD=AZ,az ,09 2LD是由所有用一个字母后跟一个数字 组成的符号串所构成的集合。 3L4是由所有的四个字母的符号串构的集合。 4L(LD)* 是由所有的字母打头的字母和数字组成的符号串所构成的集合. 5D+是由所有的长度大于等于1的数字串所构成的集合.,例,11,2.2 文法和语言的定义,2 . 2 . 1 引子2 . 2 . 2 文法和语言的定义一. 文法和语言的定义二. 推导三. 语言四. 最左推导和最右推导五。短语,直接短语,句柄,12,引子,分析:The grey wolf will eat
6、 the goat,谓语,主语,冠词,形容词,名词,动词,直接宾语,助动词,句子,动原,冠词,名词,The grey wolf will eat the goat,13,为了进行机械分析, :“句子由主语后跟随谓语组成”表示为:,句子 主语 谓语 (1) 主语 冠词 形容词 名词 (2) 冠词the 形容词 grey 谓语 动词 直接宾语 (5) 动词 助动词 动词原形 (6) 助动词will 动词原形 eat 直接宾语 冠词 名词 (9) 名词wolf 名词 goat,语法规则,14,:终结符号集,非终结符号集,语法规则,开始符号。,终结符号集VT=the,grey, wolf,will,
7、eat, goat非终结符号集VN=句子,主语, 谓语, 冠词, 形容词, 名词 , 动词 , 直接宾语 , 助动词 ,动词原形 语法规则集P=句子 主语谓语, 开始符号S= 句子,句子的语法有四部分,15,句子主语 谓语 冠词 形容词 名词 谓语 the 形容词 名词 谓语 the grey名词 谓语 the grey wolf 谓语 the grey wolf 动词 直接宾语 . the grey wolf will eat the goat,句子根据规则推导出来,16,句子 the grey wolf will eat the goat the grey wolf will eat th
8、e wolf the grey goat will eat the wolf the grey goat will eat the grey合符语法且合符语义的句子仅是: the grey wolf will eat the goat,+ ,句子既要合符语法又要合符语义,17,分析:The grey wolf will eat the goat,句子,主语,谓语,冠词,形容词,名词,动词,直接宾语,助动词,动原,冠词,名词,goat,the,eat,will,The,grey,wolf,句型分析一,18,分析:The grey wolf will eat the goat,句子,主语,谓语,冠
9、词,形容词,名词,动词,直接宾语,助动词,动原,冠词,名词,goat,the,eat,will,The,grey,wolf,句型分析二,19,一个上下文无关文法 G= (VT,VN S, P ),其中: VT是一个非空有穷终结符号集合; VN是一个非空有穷的非终结符号集合, 且VTVN; S VN ,称为开始符号。 P是一个产生式的非空有穷集合,每个产 生式的形式是A(或A :),其中 AVN,(VTVN)*。开始符号S至必须在某个产生式的左部出现一次 。 缩写形式: A 1|2,一 文法的定义,20,G=(a,+,*,(,),, , ,P ) P: * ( ) a E E+T T T T*F
10、 F F ( E ) a (2.1),例2.2 算术表达式的文法G:,21,令G=(VT,VN,S,P), 若AP,且,(VTVN)*,则称A直接推出,表示成 A A直接推出 直接归约到A 如果存在一个直接推导序列: 012 n(n0) 表示成 0 n 0 n 或者0=n或者0 n,+,+,*,二. 定义2.3 直接推导和推导的定义,22,例:E E+T T+T F+T a+T a+F a+a,23,设文法 G(VT,VN,S,P)。如果S ,则称是一个句型。仅含终结符号的句型是一个句子。语言 L(G)是由文法G产生的所有句子所组成的集合: L(G)|S 且VT*例2.3 考虑一个文法 G(a
11、,b,S,S,P)其中P:SaSb ab SaSb aaSbb a3Sb3 an-1Sbn-1 anbn,*,+,三. 定义2.4:语言的定义,24,设G=(VT=a,b,VN=S,A,B,S,P P由下列产生式组成:SaB|bA Aa|aS|bAA Bb|bS|aBBL(G)=w|wa,b+,且w中有相同个数的a和b。 用归纳法证明下面结论(对w的长度) :(1)S w,当且仅当w中含有相同个数的a和b。 (2)A w,当且仅当w中a的个数比b的个数多一个。 (3)B w,当且仅当w中b的个数比a的个数多一个。归纳基础 当|w|=1,Aa, B b, 不能从S导出长度 为1的终极行,则上述结
12、论显然成立。,*,*,*,例2.4,25,设(1),(2)和(3)对于长度不超过k-1的所有w都成立。那么,证明对|w|=k也成立。 对于(1),推导的第一步必是SaB或SbA,对于第一种情形,必有w=aw1且B w1, |w1|=k-1,它含的b个数比a多一个,因此,w中a,b的个数相等。推导的第一步是SbA,证明完全类似。反之,|w|=k, w中a,b的个数相等,要证S w。考虑的S推导,推导出的开始符号,或为a或为b。若SaB,B w1, |w1|=k-1, w1中b的个数比a多一个,w= aw1。若S bA,证明和类SaB类似。 (2)和(3)的证明留给同学们。,*,*,*,归纳步骤,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 语言 基本知识

限制150内