利用到达定义集计算流依赖及def―order依赖.docVIP

利用到达定义集计算流依赖及def―order依赖.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用到达定义集计算流依赖及def―order依赖

利用到达定义集计算流依赖及def―order依赖   摘要:针对生成程序系统依赖图时语句顶点之间的流依赖和def-order依赖计算问题,给出了定义清晰的路径以及到达定义集的概念,描述了利用到达定义集进行计算的方法步骤,有助于确立语句之间的流依赖和def-order依赖关系 关键词:C语言;到达定义集;流依赖;def-order依赖 中图分类号:TP312 文献标识码:A 文章?号:1009-3044(2016)36-0001-03 Using Reaching Definition Set To Compute Flow Dependence and Def-Order Dependence YAN Ping, LAN Li-yi (Department of Math and Computer Science,Gannan Normal University, Gannan 341000, China) Abstract:Aiming at the computation problem of flow dependence and def-order dependence between sentences vertexes when building program’s system dependence, the concept about the clear definition path and the reaching definition set is giving, the calculating method and step of using reaching definition set is described.It is helpful for building the dependence relation of flow dependence and def-order dependence types between sentences vertexes. Key words: C-language;reaching definition set;flow dependence; def-order dependence 程序系统依赖图的建立包括控制依赖、数据依赖以及transitive依赖关系的建立,而数据依赖包含流依赖和def-order依赖,本文以C语言程序为实例讨论如何利用到达定义集对流依赖和def-order依赖进行计算 1 相关概念与算法步骤描述 程序系统依赖图的建立,需要以程序的函数为单位计算流依赖和def-order依赖,然后再建立函数之间的连接关系,为此需要用到2个辅助集合def集和use集,引入定义清晰的路径和到达定义集概念,区分单点路径和多点路径 函数内数据依赖关系按如下步骤计算: 1.1 处理调用和被调用关系,给出函数的控制流图 对于多函数程序,由于存在函数调用关系,在给出控制流图时需要①处理函数内的调用顶点,②处理被调函数的参数和返回值,为此需要引入新的变量。函数参数分为引用参数和引用后结果会被修改的参数两种情况。依据文献[1]在系统依赖图生成中参数的处理方法有: 假设函数P调用函数Q,e为P中调用点call-site处实参,r为Q的形参,在P的调用点有:①Actual_in顶点,对应赋值:r_in=e。②Actual_out顶点,对应赋值:a=r_out,其中a为实参是个变量。关系:实参a对应形参r。具有r_in和r_out形式的变量为新引入的变量。对Q的形参r,Q的依赖图中包含①一个Formal_in顶点,对应赋值:r=r_in。②一个 Formal_out顶点,对应赋值:r_out=r。每个参数包含Actual_in和Formal_in顶点,若参数属于引用后结果会被修改的参数,则还包含Formal_out和Actual_out顶点。在系统依赖图中,Actual_in和Actual_out顶点控制依赖于P内的call_site点,Formal_in和Formal_out顶点控制依赖于Q的ENTRY顶点。Q中形式为return(S)的语句引入新变量S_out后被处理为赋值顶点: S_out=S控制依赖于Q的ENTRY顶点。P中函数有返回值时,返回值为S_out,P中有对返回值进行加工处理的语句如赋值语句等,处理为控制依赖于P中调用点call-site 1.2 计算函数中各语句S的def集和use集 def(S)是S中定义的变量集合,use(S)是S中使用的变量集合,根据变量是出现在赋值的左边还是右边来确定 1.3 求出函数中每个语句顶点Z的到达定义集rd(Z) 方法是找出函

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档