编译原理陈火旺版3章3剖析.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 一个LEX源程序片段: leter-A|B|…|Z //辅助定义部分,定义名字letter和digit digit-0|1|…|9 %% DIM { return(1,-)} //识别规则部分 IF {return(2,-)}   DO {return(3,-)}   STOP {return(4,-)} END {return(5,-)} letter(letter|digit)* {return(6,getSymbolTableEntryPoint()) } digit(digit)* {return (7,getConstTableEntryPoint()) } = {return(8,-)} + {return(9,-)} * {return(10,-)} ** {return(11,-)} , {return(12,-)} ‘(’ {return(13,-)} ‘)’ {return(14,-)} 作业 P64 5、7(1)、 8(1)(2)(3)(4)、 12、14 上机实习题:词法分析程序的设计。 (见文档) 上机安排:软工实验室 第7周 周一 1-2 (01-02班) 3-4、中午 (04-05班) 周三 中午 ( 01-03班) 第8周 周一 1-2 (01-03班 ) 3-4 (04-05班) * * * (2)这里的词法语法分开是指分成两个功能模块,并非分成两遍。词法规则更简单,可以用更简单的机制来实现这样效率更高,若与语法分析器合二为一,都采用相同的方法进行分析则效率较差。 * * * * * 该例中,保留字分为一类,编号是3。在多数情况下保留字是一符一类。算符也是如此。 * * * * * * * * * * * * * * * * * * * * * 首先介绍两个重要运算: (1)状态集的ε-闭包:状态集I中的任何状态s经任意条ε弧而能到达的所有状态的集合,定义为状态集I的ε-闭包,表示为ε-closure(I)。 (2)状态集的a弧转换:状态集I中的任何状态s经过一条a弧而能到达的所有状态的集合,定义为状态集I的a弧转换,表示为move(I,a)。 对于任意 NFA M=(K,Σ,f,S,F),I?K, a∈Σ不妨设I={s1,s2,…sj}, 则move(I,a)=f(s1,a)∪f(s2,a) ∪…∪f(sj,a) (3)状态集的a弧转换的闭包Ia Ia= ε-closure(move(I,a)) 例如:有下图所示的NFA ,我以它为例来说明以上两个运算 。 对于I={0},ε-closure(I)= ε-closure({0})={0,1,2,4,7}; 令A={0,1,2,4,7} 同理若 I={2,3}, ε-closure(I)= ε-closure(

文档评论(0)

558411 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档