编译原理课件Chapter4.ppt
《编译原理课件Chapter4.ppt》由会员分享,可在线阅读,更多相关《编译原理课件Chapter4.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 词法分析14.1 词法分析程序的设计(1)任务任务 主要任务主要任务 逐逐个个字字符符地地扫扫描描源源程程序序,识识别别单单词词符符号号(终终结结符符)。在在拼拼单单词词时时作作词词法法检检查查。每每识识别别出出一一个个单单词词,就就翻翻译译成成相相应应的的机机内内表表示(语法分析时的终结符)。示(语法分析时的终结符)。2删去注解、空格、续行符等删去注解、空格、续行符等插入某些信息插入某些信息为为了了语语法法分分析析出出错错处处理理的的错错误误定定位位,要要为为源程序增加行号(在列表文件中可见)。源程序增加行号(在列表文件中可见)。有有些些语语言言(如如FORTRAN)无无语语句句结结
2、束束符符“;”,就要插入句末符。,就要插入句末符。输出源程序清单输出源程序清单3(2)实现方式实现方式 相对独立方式相对独立方式 完全独立方式完全独立方式源程序源程序词法分析程序词法分析程序语法分析程序语法分析程序属性字序列属性字序列.语法分析程序语法分析程序源程序源程序词法分析程序词法分析程序Tokenget token.4(3)单词类别及其输出形式单词类别及其输出形式 单词可作各种分类,典型地分为类:单词可作各种分类,典型地分为类:保保留留字字:AND,BEGIN,FOR,TYPE,VAR等等(个个数数确定,可全体编为一类,称作确定,可全体编为一类,称作“一符一类一符一类”)标标识识符符:
3、用用户户定定义义的的常常量量名名、变变量量名名、过过程程名名和和类型名类型名(个数不确定,作为一类)(个数不确定,作为一类)常常量量:12,1997,4.14,A,scnu等等(个个数数不确定,按类型分类)不确定,按类型分类)运运算算符符,=,RE)定理定理4.2正则文法规则正则文法规则Ua1W1|a2W2|anWn|b1|b2|bm的等价正则式方程为其中的等价正则式方程为其中U=(b1+b2+bm)+a1W1+a2W2+anWn其中其中Wi是正则变量是正则变量15定理定理4.3设设X是正则变量,是正则变量,a和b是正则是正则式,且式,且X=aX+b则则 X=a*b。证证:由定理:由定理4.2
4、4.2,正则式方程,正则式方程X=aX+b等等价于以下正则规则:价于以下正则规则:XaX|b其定义的语言和正则式其定义的语言和正则式a*b一样,同为:一样,同为:anb|n=0 若若X=Xb+a 则则 X=?。(自己证明自己证明)16定义定义4.4 n元正则式方程组的标准形式:元正则式方程组的标准形式:X1=a10+a11X1+a12X2+a1nXn X2=a20+a21X1+a22X2+a2nXn Xn=an0+an1X1+an2X2+annXn其中,其中,aij是正则式,但不含变量;是正则式,但不含变量;Xi是正则变量(待定正则式)是正则变量(待定正则式)。17例:例:对文法对文法G:Sa
5、A AbS|a用正则式来描述文法定义的语言用正则式来描述文法定义的语言解解:根据定理根据定理4.2 S=aA A=a+bS 把把式代入式代入式,式,S=a(a+bS)=aa+abS根据定理根据定理4.3 S=(ab)*aa184.3有穷自动机(FA)(1)确定有穷自动机(DFA)定义4.5一一个个确确定定有有限限自自动动机机(DFA)M是是一一个个五元组:五元组:M=(K,VT,f,S,Z)其中其中K:有穷状态集;有穷状态集;VT:有穷的输入字母表;有穷的输入字母表;f:KVTK是状态转换函数,即是状态转换函数,即f(W,a)=U 表示当前状态表示当前状态W下,输入下,输入a时,转到状态时,转
6、到状态U。S:唯一唯一的开始状态的开始状态,SK;Z:终止状态终止状态集集,是,是K的非空子集。的非空子集。“确定确定”即即f是单值函数是单值函数。19例:例:设有M1=(0,1,2,3,a,b,f,0,3),其中:f(0,a)=1 f(0,b)=2 f(1,a)=3 f(1,b)=2f(2,a)=1 f(2,b)=3f(3,a)=3 f(3,b)=3fa b-012132213+333一个一个DFA可用一个矩阵表示,该矩阵的可用一个矩阵表示,该矩阵的行行表示表示状态,状态,列列表示输入字母,矩阵元素表示表示输入字母,矩阵元素表示f(W,a)的值,这个矩阵称的值,这个矩阵称状态转移矩阵状态转移
7、矩阵。20例:例:设有M1=(0,1,2,3,a,b,f,0,3),其中:f(0,a)=1 f(0,b)=2 f(1,a)=3 f(1,b)=2f(2,a)=1 f(2,b)=3f(3,a)=3 f(3,b)=3一个一个DFA也可用可用状态图状态图(SG)表示,该图中的表示,该图中的结点结点表示状态,若有表示状态,若有f(W,a)=U,则从状态结点则从状态结点W到到状态结点状态结点U画画标记为标记为a的的弧弧。12 0 3abaabba,b_+21关于DFA的基本概念:定理4.4若若DFA上有一条从初态到终态上有一条从初态到终态的路径产生的路径产生x,则,则x为为DFA所能识别的符所能识别的符
8、号串。号串。注意:注意:若初态和终态是同一状态,若初态和终态是同一状态,则表示则表示为为DFA所识别。所识别。例:例:可识别的符号串可识别的符号串aab,baab,ABDCaaababb_+22显然,不能被识别的字符串有显然,不能被识别的字符串有两种两种情况:情况:(1)读完输入串,状态读完输入串,状态不停在终态,不停在终态,例例aa;(2)在读过程中出现不在读过程中出现不存在的映射,使自动机存在的映射,使自动机无法继续动作,无法继续动作,例例ab。ABDCaaababb_+23定义定义4.7确定有穷自动机确定有穷自动机DFA的的状态转换函状态转换函数数f可扩充为:可扩充为:g:KVT*K特别
9、地,特别地,g(W,)=W 对空串,状态不变对空串,状态不变 g(W,a)=g(f(W,a),)=f(W,a)即,即,f有定义,有定义,则则f与与g一致。一致。g(W,a1a2)=g(g(W,a1),a2)=f(f(W,a1),a2)g(W,a1a2 an)=g(g(g(g(W,a1),a2),),an)=f(f(f(f(W,a1),a2),),an)24定义4.8 若若xVT*且且 g(S,x)Z,则称则称x为为DFA所识别的字符串所识别的字符串。例:例:输入字符串输入字符串aabg(A,aab)=g(g(A,a),ab)=g(B,ab)=g(g(B,a),b)=g(C,b)=DABDCaa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课件 Chapter4
限制150内