编译原理课件:Linux编程与应用课件:第2章 编译基础(形式语言与有穷自动机)6.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《编译原理课件:Linux编程与应用课件:第2章 编译基础(形式语言与有穷自动机)6.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理课件:Linux编程与应用课件:第2章 编译基础形式语言与有穷自动机6 编译 原理 课件 Linux 编程 应用 基础 形式语言 有穷 自动机
- 资源描述:
-
1、第二章 编译基础-形式语言本讲内容本讲内容n字母表、串、语言字母表、串、语言n文法的引例文法的引例n文法的形式定义(定义、分类)文法的形式定义(定义、分类)n正规文法与有穷自动机正规文法与有穷自动机n上下文无关文法上下文无关文法第一节第一节 字母表、串、语言字母表、串、语言1 字母表字母表:有穷非空字符集:有穷非空字符集 语言允许使用的语言允许使用的字符集字符集可识别符号可识别符号例:例: =a-z,A-Z,0-9,+,_,*,/,/(,),=.2 字符串:字符串:字母表中符号组成的任何字母表中符号组成的任何有穷序列有穷序列单词单词例:例:scanf,int,3.1415,x1,100,asc
2、anf,int,3.1415,x1,100,a3 字符串运算:字符串运算: A、B为字符串集合为字符串集合 x,y为字符串为字符串连接:连接: xy 称为称为x和和y的连接的连接 例:例:int x x=100积:积:AB=xy/x A,而而y B 闭包:闭包:A*=A0 A1 A2. . An 其中:其中: A0= , Ai= = Ai-1 A A+= = A*- - A+中的每一个元素即为一个语句例: x=3.14159*r*r形式语言是一个字母表上按某种规则构成的所有串的集合。在语言中这些串称为句子。对于一个句子,存在两个过程:读-识别过程-编译的过程写-推导过程-书写源程序第二节 文法
3、的引例 句子:I am a teach.Iamateacher amateacher i第三节第三节 文法的形式定义文法的形式定义一、几个概念一、几个概念1、非终结符、非终结符语法变量语法变量2、终结符、终结符单词单词3、产生式、产生式规则规则二、文法的定义二、文法的定义文法是一个四元组,表示为:文法是一个四元组,表示为: G=(VN,VT,P,S)其中:其中: VN -非终结符集合非终结符集合 VT -终结符集合终结符集合 P-产生式集合产生式集合 S-开始符号开始符号P: VV+ + , V V* * V=VN VT例:描述系表结构的文法,其形式描述例:描述系表结构的文法,其形式描述为为G
4、=(VN,VT,P,S)VN = VT =I,am ,a ,teacherS= amateacher P=i再给出一个描述算术表达式的文法例子再给出一个描述算术表达式的文法例子 p=EE+T|T p=EE+T|T TT TT* *F|FF|F F(E)|a F(E)|a 文法文法G G(E E):):G=(VN,VT,P,S)VN =E,T,FVT =+,*,(,),(,),aS= E *句型:句型:S= , , V V* * 为句型为句型例:例: I am I am *句子句子:S= w, ww, w V VT T* * w w为句子为句子例:例:Iam a teacherIam a tea
5、cher *语言语言:L=w/w w w V VT T* * , , 且且S=w例:例:I am a teacher推导的定义推导的定义若存在若存在v v ww0 0 ww1 1 . . wwn n=w(n0)=w(n0) 则记为则记为v v =+ w w,v v推导出推导出ww,或,或ww归约到归约到v v若有若有v v =+ w w,或,或v=wv=w, 则记为则记为v v =* w w例:例:GEGE: EE+T|TEE+T|T TT TT* *F|FF|F F(E)|a F(E)|aE EE+T E+T T+T T+T F+T F+T a+T a+T a+Ta+T* *F F a+Fa
6、+F* *F F a+aa+a* *F F a+aa+a* *a a句子:用符号句子:用符号a a,+ +,* *,( (和和) )构成的构成的算术表达式算术表达式EE+TTFaT*FFaaE EE+T E+T T+T T+T F+T F+T a+T a+T a+Ta+T* *F F a+Fa+F* *F F a+aa+a* *F F a+aa+a* *a a 通过对产生式施加不同的限制,通过对产生式施加不同的限制,ChomskyChomsky将文法将文法分为四种类型:分为四种类型:0 0型文法:对任一产生式型文法:对任一产生式,都有,都有 (V(VNNVVT T) )+ +, (V(VNNV
7、VT T) )* *1 1型文法:对任一产生式型文法:对任一产生式,都有,都有|, 仅仅仅仅 SS除外除外2 2型文法:对任一产生式型文法:对任一产生式AA,都有,都有AVAVNN , (V(VNNVVT T) )* *3 3型文法:任一产生式型文法:任一产生式AA的形式都为的形式都为AaBAaB或或 AaAa,其中,其中AVAVNN ,BVBVNN ,aVaVT T文法分类:文法的类型文法的类型自然语言属于上下文有关文法例:例:1 1型(上下文有关)文法型(上下文有关)文法 文法文法GSGS:SCDSCDAbbAAbbACaCACaCABaaBBaaBCbCBCbCBBbbBBbbBADaD
8、ADaD C CBDbDBDbD D DAabDAabD文法的类型文法的类型是语法分析的基础例:例:2 2型(上下文无关)文法型(上下文无关)文法 文法文法GSGS:SABABABS|0BS|0BSA|1SA|13 3型文法型文法GS: S0A|1B|00A|1B|0A0A|1B|0S0A|1B|0SB1B|1|01B|1|0GI:I lT lTI l lT lT lTT dT dTT l lT d d是词法分析的基础文法的类型文法的类型四种四种文法文法之间之间的的逐级逐级“包含包含”关系关系0型文法1型文法2型文法3型文法文法和语言文法和语言n0 0型文法产生的语言称为型文法产生的语言称为0
9、 0型语言型语言1 1型文法或上下文有关文法(型文法或上下文有关文法( CSG CSG )产生的)产生的语言称为语言称为1 1型语言或上下文有关语言(型语言或上下文有关语言(CSLCSL)2 2型文法或上下文无关文法(型文法或上下文无关文法( CFG CFG )产生的)产生的语言称为语言称为2 2型语言或上下文无关语言(型语言或上下文无关语言( CF L CF L ) 3 3型文法或正则(正规)文法(型文法或正则(正规)文法( RG RG )产生的)产生的语言称为语言称为3 3型语言正则(正规)语言(型语言正则(正规)语言( RL RL ) 根据形式语言理论根据形式语言理论, ,文法和识别系文
10、法和识别系统间有这样的关系统间有这样的关系 0 0型文法(短语结构文法)的型文法(短语结构文法)的能力相当于能力相当于图灵机,图灵机,可以表征任何递归可枚举集,可以表征任何递归可枚举集,而且任何而且任何0 0型语言都是递归可枚举的型语言都是递归可枚举的 1 1型文法(上下文有关文法):产生式的型文法(上下文有关文法):产生式的形式为形式为1 1AA2 21 12 2,即只有,即只有A A出出现在现在1 1和和2 2的上下文中时,才允许的上下文中时,才允许取代取代A A。其。其识别系统是线性界限自动机。识别系统是线性界限自动机。 2 2型文法(上下文无关文法型文法(上下文无关文法CFGCFG):
11、):产生式的形式为产生式的形式为AA,取代取代A A时时与与A A的上下文无关。的上下文无关。其识别系统是其识别系统是不确定的下推自动机。不确定的下推自动机。 3 3型文法(正规文法型文法(正规文法RGRG):产生的语):产生的语言是言是有穷自动机有穷自动机(FAFA)所接受的集)所接受的集合合第四节 正规文法与有穷自动机一、正规文法1. 正规文法 能 产生语言L(G)2. 写出产生语言L(G)的正规文法第四节 正规文法与有穷自动机1、正规文法 产生的语言的推导例:文法 G=(VN,VT,P,S)其中: VN=A,B,C VT=a,b,c S=AP:A aB A aA aB A aA B bB
12、 B bB B bCbC C cC C c C cC C cL(G)=aL(G)=ammb bn nc cp p/m,n,p/m,n,p1 1A=aA=aaA=A=aA=aaA=.=aa.=aaaBaB =aa =aaabB=aaabB=aaabbabbbCbC =aa =aaabbabbbcC= aabcC= aaabbabbbccCbccC = aa = aaabbabbbccbccc c最小句子:abcP:A aB A aA aB A aA B bB B bB B bCbC C cC C c C cC C c例例1 1:写出产生语言:写出产生语言L(G)=aL(G)=ammbcbcn n
13、/m,n/m,n00的正规文法的正规文法解:文法 G=(VN,VT,P,S)其中: VN=A,C VT=a,b S=AP:最小语言:bA aAaAA bA bA bCA bCC cCcCCcCc2. 写出产生语言写出产生语言L(G)的正规文法的正规文法例例2 2:C C语言标识符的文法描述语言标识符的文法描述L L(G G)=w/w=w/w为字母或为字母或- -打头的字母数字串打头的字母数字串 解:P:IaB I -BaB I -B B aB B aB B dB Ba B ddB Ba B dI aI aIBT Ta-a,d 其它其它2. 写出产生语言写出产生语言L(G)的正规文法的正规文法二
14、、有穷自动机二、有穷自动机正规文法产生的正规语言用有穷自动机正规文法产生的正规语言用有穷自动机来识别来识别根据文法-写程序 -编译时用有穷自动机识别二、有穷自动机二、有穷自动机1 1、特点:接收离散输入,状态有穷,只、特点:接收离散输入,状态有穷,只需考虑当前输入和当前内部状态需考虑当前输入和当前内部状态2 2、原理:、原理:有穷自动机控制器有穷自动机控制器读头自左向读头自左向右逐个扫描并读入右逐个扫描并读入输入符号输入符号,并且根据,并且根据控制器的控制器的当前状态当前状态和和当前输入符号当前输入符号控制控制转入转入下一个状态下一个状态、模型、模型Main ( ) int I , j , k
15、 ;有穷控制器、表示、表示状态图状态图IBT Ta-a,d 其它其它例:例:C C语言的标识符语言的标识符、形式定义、形式定义确定的有穷自动机是一个五元组确定的有穷自动机是一个五元组 M=M=(QQ, , ,q q0 0,Z Z)其中:其中:QQ是一有穷状态集是一有穷状态集是有穷输入字母表是有穷输入字母表是是Qx Qx QQ的映射函数的映射函数 其含义:其含义: ( q q1 1,a)= ,a)= q q2 2q q0 0 Q,Q,唯一的初态唯一的初态Z Z是的子集,是终态集是的子集,是终态集 例:奇偶测试器例:奇偶测试器q00q11q101自动机:(自动机:(QQ, , ,q q0 0,Z
16、Z)QQ q q0 0, q, q1 1 =0,1 =0,1 q q0 0=q=q0 0 Z=q Z=q1 1 映射函数映射函数:( q q, ,)= )= q q( q q, ,)= )= q q( q q1 1, ,)= )= q q( q q1 1, ,)= )= q q例例:q00q11q101三、正规表达式与有穷自动机三、正规表达式与有穷自动机关系:等价、交换关系:等价、交换文法文法 G=(VN,VT,P,S)和)和自动机自动机 M=M=(QQ, , ,q q0 0,Z Z)可转换为:可转换为: VN为终态为终态q q0 0 VT,S若 映射函数映射函数:、:、: a a2 2 ,
展开阅读全文