中国农业大学《编译原理》课件-第4章词法分析.pptVIP

中国农业大学《编译原理》课件-第4章词法分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

- $ASSIG 13 0002 $ID 12 - $SEMI 11 0001 $REAL 10 - $ASSIG 9 0001 $ID 8 - $BEGIN 7 - $SEMI 6 0000 $INT 5 - $PLUS 4 0000 $ID 3 - $ASSIG 2 0000 $ID 1 0000 $ ID 26 - $ ASSIG 25 0000 $ID 24 - $DO 23 0002 $INT 22 - $LT 21 0000 $ID 20 - $WHILE 19 - $SEMI 18 - $END 17 0000 $ID 16 - $STAR 15 0001 $ID 14 同时被生成的NAMEL表和CONSL表分别如下图: ZZ 0002 YY 0001 X1 0000 NAMEL表 100的=进制 0002 0.5的=进制 0001 1 的=进制 0000 CONSL表 等价3型文法 G2=(VN,VT,P,S)如下: VN={Z,B,M}R是终止状态没有输出边去掉 VT={a,b} S=Z P={Z→aM|bB|a|b B→aB|bZ|a|b M→bM|b|a} 说明: Z→aM|a Z→bB|b 例子: 设有文法如下: G[S]:S→A|bB A→c B→dD D→ε 构造等价自动机。 化简文法:S→c|bB B→dD B→d c d b d K B S + - D c b d K B S + - 例子: 自动机如下所示,求与之等价的正则文法。 1 2 a 3 b a + - b a b +1 2 2 2,3 -2,3 2 2,3 G=({A,B,C},{a,b},P,A),其中P为: A→aB B→bC|b C→aC|a|aB A B a C b a + - a 4.6 词法分析程序的生成器 这里介绍一种以正则表达式作为输入的词法分析程序生成器,称为LEX。 单词的描述 词法分析程序生成器 LEX源程序 LEX Compiler 词法分 析程序 1. 一个LEX源程序由下面两段组成: 辅助定义 (可略) 转换规则段 辅助定义段形式: D1=R1 D2=R2 …… Dn=Rn 例如:设VT={A,B,……Z,0,1,……9} letter=A|B|……|Z digit=0|1|……|9 identifer=letter(letter|digit)* 第三个式子不能在一、二之前。 转换规则形式: P1 {A1} P2 {A2} …… …… Pn {An} 例子:要构造具有此变换功能的词法分析器,可编写LEX源程序如下: 辅助定义段 Letter=A|B|……|Z Digit=0|1|……|9 转换规则段 IF {return 3 } THEN {return 4 } ELSE {return 5 } {return 34} := {return 38} ( {return 20} ) {return 21} + {return 24} * {return 26} letter(letter|digit)* {return,0,标识符自身值} digit(digit)* {return,1,常量值} …… …… 2. LEX compiler所完成的工作: (a)对于每条转换规则Pi(正则式)构造NFA自动机。 (b)引进新的开始状态,由此出发通过m条?弧,将m个NFA连成一个NFA。 (c)运用子集法将NFA化为FA。 例子:试利用LEX compiler 自动生成一个能识别无符号数d…d.d…dESd…d的词法分析程序。 准备提交给生成的LEX源程序为 辅助定义段: digit=0|1|…|9 (d) Sign=+|-|E (S) 转换规则段: dd* {A1} d*.dd* {A2} d*ESdd*

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档