前后文无关文法和语言 讲稿.ppt
《前后文无关文法和语言 讲稿.ppt》由会员分享,可在线阅读,更多相关《前后文无关文法和语言 讲稿.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前后文无关文法和语言 第一页,讲稿共六十七页哦重点和难点重点和难点重点:重点:本章中涉及的概念和术语的理解本章中涉及的概念和术语的理解文法和语言的形式定义文法和语言的形式定义难点:难点:短语和句柄的识别短语和句柄的识别二义性文法的判定二义性文法的判定第二页,讲稿共六十七页哦2.1 语言及其表示方法语言及其表示方法规定一种语言首先要规定它各种构造成分的形式,规定一种语言首先要规定它各种构造成分的形式,词汇、句子等的构造规则及表示法。词汇、句子等的构造规则及表示法。编译原理则应建立有关语言的数学化(形式化)模型,编译原理则应建立有关语言的数学化(形式化)模型,以便对程序语言进行研究。以便对程序语言
2、进行研究。第三页,讲稿共六十七页哦定义定义1:相当大的地区内公众所懂得并使用的相当大的地区内公众所懂得并使用的“话话”,以及组,以及组成这些成这些“话话”的方法的统一体。的方法的统一体。缺点:不够形式化和精确化缺点:不够形式化和精确化定义定义2:某一个字母表上的符号串的(句子)的集合。某一个字母表上的符号串的(句子)的集合。缺点:缺乏语言句子的结构性组成描述,缺点:缺乏语言句子的结构性组成描述,缺乏判断任一缺乏判断任一符号串是否为合法句子判断机制。符号串是否为合法句子判断机制。因此,如果能刻画一个语言句子,就定义了该语言。因此,如果能刻画一个语言句子,就定义了该语言。1 1、语言、语言、语言、
3、语言第四页,讲稿共六十七页哦1956年,年,chomsky建立建立文法文法的数学模型,对形的数学模型,对形式化语言和自动机理论的研究取得较大的成果。式化语言和自动机理论的研究取得较大的成果。1960年。年。P.Nuaur和和J.Boukas首先用首先用BNF成功成功对对ALGOL语言的文法进行了描述,虽然对语义形语言的文法进行了描述,虽然对语义形式化描述不理想,但在程序设计语言的语法描述式化描述不理想,但在程序设计语言的语法描述上有足够的能力。上有足够的能力。至此,程序语言就有了形式化表述。至此,程序语言就有了形式化表述。第五页,讲稿共六十七页哦枚举枚举(句子有限)(句子有限)例:例:L=We
4、 are learning computer science,it is interesting数学表示数学表示(句子无限句子无限)例例:1,1/2,1/3,1/n1/n|n N 制定有限条规则,用来产生所需描述语言中的句子全部,制定有限条规则,用来产生所需描述语言中的句子全部,这些规则即这些规则即文法。文法。建立一种算法能对于任给的符号串,判别是否为给定语言的建立一种算法能对于任给的符号串,判别是否为给定语言的合法句子合法句子自动机理论自动机理论自动机理论自动机理论。2 2、表示方法、表示方法、表示方法、表示方法第六页,讲稿共六十七页哦 语言可以看成在一个语言可以看成在一个基本符号集基本符号
5、集上定义的,上定义的,上定义的,上定义的,按按按按一定规则一定规则一定规则一定规则构成的一切基本符号串组成的集构成的一切基本符号串组成的集合。合。第七页,讲稿共六十七页哦2.2 文法的定义文法的定义1 1、例:、例:、例:、例:“我是大学生我是大学生”是汉语的一个句子。是汉语的一个句子。句子句子=主语谓语主语谓语主语主语=代词名词代词名词代词代词=我我你你他他名词名词=王明王明大学生大学生工人工人英语英语谓语谓语=动词直接宾语动词直接宾语动词动词=是是学习学习直接宾语直接宾语=代词名词代词名词 返回第八页,讲稿共六十七页哦=左端的规则由左端的规则由=右端的符号串代替:右端的符号串代替:句子句子
6、 主语主语谓语谓语 代词代词谓语谓语 我我谓语谓语 我我动词动词直接宾语直接宾语 我是我是直接宾语直接宾语 我是我是名词名词 我是大学生我是大学生 按照如下方式用它们导出句子:按照如下方式用它们导出句子:第九页,讲稿共六十七页哦大学生句子句子主语主语 谓语谓语代词代词动词直接宾语动词直接宾语名词名词我是“我大学生是我大学生是”是否为是否为?第十页,讲稿共六十七页哦sentence subject This|Computers|Iverb-phrase|adverb neververb is|run|am|tellobject the|a|noun university|world|cheese
7、|liesThis is a university.Computers run the world.I am the cheese.I never tell lies.英语句子英语句子第十一页,讲稿共六十七页哦2 2、文法的形式化表示、文法的形式化表示、文法的形式化表示、文法的形式化表示l l符号:符号:符号:符号:表示一个语法单位;表示一个语法单位;=()表示)表示“定义为定义为”;|表示为表示为“或或”。l l文法:文法:文法:文法:描述语言的形式结构的规则。描述语言的形式结构的规则。产生式,产生式,产生式左部,产生式左部,产生式右部产生式右部第十二页,讲稿共六十七页哦l l文法的一般构成
8、:文法的一般构成:文法的一般构成:文法的一般构成:pp一组终结符号:一组终结符号:一组终结符号:一组终结符号:仅出现在产生式右部的符号仅出现在产生式右部的符号 VT;pp一组非终结符号:一组非终结符号:一组非终结符号:一组非终结符号:至少在产生式左部出现过一次的符号至少在产生式左部出现过一次的符号VN;pp一个开始符号:一个开始符号:一个开始符号:一个开始符号:特殊的非终结符,表示了定义语言中特殊的非终结符,表示了定义语言中最感兴趣的语法范畴。最感兴趣的语法范畴。S;pp一组规则:一组规则:一组规则:一组规则:P G=VT,VN,S,P 例如例如 第十三页,讲稿共六十七页哦q VN,VT和和P
9、是是 非空有穷集;非空有穷集;q VN和和VT不含公共的元素,即不含公共的元素,即VN VT=;q 用用V表示表示VNVT,称文法,称文法G的字母表或字汇表;的字母表或字汇表;q 产生式是形如产生式是形如 或或 =的(的(,)有序对,其中有序对,其中 是是字母表字母表V的一个非空符号串的一个非空符号串(V+),是是V中的一个符号串,可中的一个符号串,可为空串为空串(V*)。称为产生式左部,称为产生式左部,称作产生式右部。称作产生式右部。说说说说 明:明:明:明:第十四页,讲稿共六十七页哦2.3 由文法产生句子由文法产生句子1 1、推导、推导、推导、推导句子句子 主语主语谓语谓语 代词代词谓语谓
10、语 我我谓语谓语 过程:过程:过程:过程:文法的文法的文法的文法的开始符号开始符号开始符号开始符号开始,每次把当前串的一个开始,每次把当前串的一个开始,每次把当前串的一个开始,每次把当前串的一个非终结符非终结符非终结符非终结符号用于之对号用于之对号用于之对号用于之对应的应的应的应的产生式右部产生式右部产生式右部产生式右部来代换,得到一个新符号串,称来代换,得到一个新符号串,称来代换,得到一个新符号串,称来代换,得到一个新符号串,称一步推导一步推导一步推导一步推导。2 2、推导长度、推导长度、推导长度、推导长度第十五页,讲稿共六十七页哦l 文法的作用就是用有限条规则产生无限多句子。文法的作用就是
11、用有限条规则产生无限多句子。l 某一文法产生的全部句子所组成的集合某一文法产生的全部句子所组成的集合 该该文法产生的语言文法产生的语言。第十六页,讲稿共六十七页哦一、基本定义一、基本定义一、基本定义一、基本定义1、符号:符号:可以相互区别的记号(元素)。可以相互区别的记号(元素)。2、字母表字母表:符号(元素)的非空有穷集合。符号(元素)的非空有穷集合。3、符号串:符号串:由字母表由字母表 中的符号组成的任何有穷序列。中的符号组成的任何有穷序列。空符号串空符号串空符号串空符号串(没有符号的符号串没有符号的符号串)是是 上的符号串。上的符号串。若若x是是 上的符号串,上的符号串,a是是 的元素,
12、则的元素,则xa是是 上的符号串。上的符号串。y是是 上的符号串,当且仅当它可以由上的符号串,当且仅当它可以由1和和2导出。导出。例如:例如:=a,b ,a,b,aa,ab,aabba都是都是 上的符号串上的符号串2.4 有关定义和记号有关定义和记号第十七页,讲稿共六十七页哦4、符号串符号串s的头的头(前缀)(前缀):移走符号串:移走符号串s尾部的零个或多于零个符号尾部的零个或多于零个符号得到的符号串。得到的符号串。如:如:b是符号串是符号串banana的一个前缀的一个前缀.banana是是 banana前前缀。缀。5、符号串符号串s的尾的尾(后缀)(后缀):删去符号串:删去符号串s头部的零个
13、或多于零个符头部的零个或多于零个符号得到的符号串。号得到的符号串。如如:nana是符号串是符号串banana的一个后缀的一个后缀.banana是是 banana后缀。后缀。第十八页,讲稿共六十七页哦6、符号串符号串s的子串的子串:从:从s中删去一个前缀和一个后缀得到的符号中删去一个前缀和一个后缀得到的符号串。串。如如:ana是符号串是符号串banana的一个子串。的一个子串。7、符号串符号串s的真前缀的真前缀,真后缀真后缀,真子串真子串:任何非空符号串:任何非空符号串 x,是,是s的的前缀,后缀或子串,并且前缀,后缀或子串,并且 s x。8、符号串的长度符号串的长度:符号串中符号的个数。符号串
14、:符号串中符号的个数。符号串s的长度记为的长度记为|s|。的长度为的长度为0。对于每个符号串对于每个符号串s,s和和两者都是符号串两者都是符号串s的前缀,的前缀,后缀和子串。后缀和子串。第十九页,讲稿共六十七页哦1、连接:连接:符号串符号串x、y的连接,是把的连接,是把y的符号写在的符号写在x的符号之后得的符号之后得到的符号串到的符号串xy。如:如:x=ba,y=ck 则则 xy=back 有有a=a 2、方幂:方幂:符号串自身连接符号串自身连接n次得到的符号串。次得到的符号串。an 定义为定义为 aaaa n个个a a1=a,a2=aa a0=二、符号串的运算二、符号串的运算二、符号串的运算
15、二、符号串的运算第二十页,讲稿共六十七页哦三、符号串集合三、符号串集合三、符号串集合三、符号串集合 若集合若集合A中所有元素都是某字母表中所有元素都是某字母表 上的符号串,则称上的符号串,则称A为为字母表字母表 上的符号串集合。上的符号串集合。1、符号串集合乘积:符号串集合乘积:两个符号串集合两个符号串集合A和和B的乘积定义为的乘积定义为 AB=xy|x A且且y B 例如:若例如:若 集合集合A=ab,cde B=0,1 则则 AB=ab1,ab0,cde0,cde1 2、的闭包:的闭包:上的一切符号串(包括上的一切符号串(包括)组成的集合。记为)组成的集合。记为*第二十一页,讲稿共六十七页
16、哦3、的正闭包:的正闭包:上的上的除除外的所有符号串组成的集合。记为外的所有符号串组成的集合。记为+例:例:=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,第二十二页,讲稿共六十七页哦 *包含包含包含包含 上的所有符号串,上的所有符号串,上的所有符号串,上的所有符号串,+包含包含包含包含 上除上除上除上除空串空串空串空串 外的任意符号串。外的任意符号串。外的任意符号串。外的任意符号串。第二十三页,讲稿共六
17、十七页哦1、语言:语言:由由句子句子句子句子组成的集合,为一符号串集合。组成的集合,为一符号串集合。即:字母表即:字母表 上上的一个语言是的一个语言是 上的一些符号串的集合,是上的一些符号串的集合,是*的一个子集。的一个子集。L=S|S*、都是语言都是语言例如:例如:字母表字母表=a,b=a,b 集合集合 w|ww|w*且且w=aw=an nb bn n,n1,n1为为 上上的一个语言。的一个语言。集合集合 w|ww|w*且且w=aw=an n,n1,n1 为为 上上的一个语言。的一个语言。四、语言四、语言四、语言四、语言上上上上的有关运算的有关运算的有关运算的有关运算第二十四页,讲稿共六十七
18、页哦2、语言语言“并并”运算:运算:语言语言L和和M的并为的并为 L M,是一个语言是一个语言:w|w is in L or is in M如:如:L1=a,b,y,z ,M1=1,28,9 L1 M1=a,b,y,z,1,28,9 设设L是(是(上的)一个语言,上的)一个语言,M是(是(上的)一个语言,上的)一个语言,语言语言L和和M的的“并并”,“交交”,“差差”,“连接连接”运算结果运算结果是一是一个语言。个语言。第二十五页,讲稿共六十七页哦3、语言语言L和和M的连接运算:的连接运算:记记为为 LM(可简记为可简记为LM)。LM=st|sL且且 tM 如:如:L=a,b,y,z ,M=1
19、,28,9 LM=a1,b1,y1,z1,a2,b2a9z9 特别的:有特别的:有L =L=L。L的的n次连接次连接Ln=LL.L第二十六页,讲稿共六十七页哦4、语言语言L的的 闭包:闭包:记记为为 L*,L*=L0 L1 L2 .L0=,Ln=L Ln-1=Ln-1 L(n 1)5、语言语言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
20、,y,z y,z,1,21,28,98,9,aa,1a,aa,1a,xyz,xyz,6789st.6789st.L1(L1 M1 1)*=所有字母打头的字母和数字符号串所有字母打头的字母和数字符号串 第二十七页,讲稿共六十七页哦练习练习1:L=A,B,C,Z,a,b,cz D=0,1,2,3,4,5,6,7,8,9计算:计算:LD,LD,L4,L*,L(L D)*,D+练习练习2:考虑一个文法考虑一个文法G1:SbA AaA|a 它定义了一个什么语言呢?它定义了一个什么语言呢?从开始符从开始符S出发,我们可以推出如下句子:出发,我们可以推出如下句子:SbA ba SbA baA baa SbA
21、 baA baaa可以写为:可以写为:L(G1)=ban|n1第二十八页,讲稿共六十七页哦2.5 语言和文法的形式定义语言和文法的形式定义一个一个上下文无关文法上下文无关文法G定义为四元组定义为四元组(VN,VT,P,S)其中:其中:V VNN:非终结符号非终结符号(或语法实体,或变量或语法实体,或变量)集;集;V VT T:终结符号集;终结符号集;P P:产产生式生式(也称规则也称规则)的集合;的集合;A 其中,其中,(VN VT)*,A VN VN,VT和和P是是 非空有穷集。非空有穷集。S S:称作识别符号或开始符号的一个非终结符,它至少要在一条产生式称作识别符号或开始符号的一个非终结符
22、,它至少要在一条产生式中作为左部出现。中作为左部出现。S VN VN和和VT不含公共的元素,即不含公共的元素,即VN VT=用用V表示表示VN VT,称为文法,称为文法G的字母表或字汇表的字母表或字汇表1、上下文无关文法、上下文无关文法第二十九页,讲稿共六十七页哦例例 文法文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号为开始符号对此产生式可进行推导产生句子。对此产生式可进行推导产生句子。第三十页,讲稿共六十七页哦2、推导、推导l直接推导直接推导“”是文法是文法G G的产生式,若有的产生式,若有v,wv,w满足:满足:v=,w=v=,w=,其中其中VV*
23、,V,V*则称则称v v直接直接直接直接推导推导推导推导到到w,w,记作记作 v v w w;也称也称w w直接直接直接直接归约归约归约归约到到v v例:例:G G:S0S1,S01 0S1 00S11 00S11 000S111 000S111 00001111 S 0S1第三十一页,讲稿共六十七页哦例:例:G G:S0S1,S01 S 0S1 00S11 000S111 00001111S S 00S11 00S11S 00001111 推导长度为推导长度为4 若存在若存在v=w0 w1.wn=w(n0)则记为则记为v w,称作,称作v推导出推导出w,或,或w归约到归约到v 若有若有v w
24、 或或 v=w,则记为则记为v wl 推导的长度(长度为推导的长度(长度为n的推导)的推导)第三十二页,讲稿共六十七页哦3、句型和句子句型和句子例:例:G:S0S1,S01S 0S1 00S11 000S111 00001111G的句型的句型 S,0S1,00S11,000S111,00001111G的句子的句子 00001111,01l 句型句型 有文法有文法GS,若,若S x,xV*,则称,则称x是文法是文法G的句型。的句型。l 句子句子 有文法有文法GS,若,若S x,且,且xVT*,则称,则称x是文法是文法G的句子。的句子。第三十三页,讲稿共六十七页哦例:例:GE E:EE+T|TEE
25、+T|T TT*F|F TT*F|F F(E)|a F(E)|a判断:判断:a+a*aa+a*a是否为该文法的句子是否为该文法的句子E EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a句子:用符号句子:用符号a,+,*,(和和)构成的算术表达式构成的算术表达式第三十四页,讲稿共六十七页哦4、语言、语言l l由文法由文法由文法由文法GG生成的语言记为生成的语言记为生成的语言记为生成的语言记为L(G)L(G),它是文法,它是文法,它是文法,它是文法GG的的的的一切一切一切一切句子句子句子句子的的的的集合集合集合集合:语言中的每个句子可以由上下文无关文法的语言中的每个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 前后文无关文法和语言 讲稿 前后文 无关 文法 语言
限制150内