过程间定义和使用依赖的计算

M. J. Harrold, M. Soffa
{"title":"过程间定义和使用依赖的计算","authors":"M. J. Harrold, M. Soffa","doi":"10.1109/ICCL.1990.63786","DOIUrl":null,"url":null,"abstract":"The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"27","resultStr":"{\"title\":\"Computation of interprocedural definition and use dependencies\",\"authors\":\"M. J. Harrold, M. Soffa\",\"doi\":\"10.1109/ICCL.1990.63786\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<<ETX>>\",\"PeriodicalId\":317186,\"journal\":{\"name\":\"Proceedings. 1990 International Conference on Computer Languages\",\"volume\":\"45 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1990-03-12\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"27\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings. 1990 International Conference on Computer Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICCL.1990.63786\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. 1990 International Conference on Computer Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICCL.1990.63786","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 27

摘要

在许多语言处理工具中,检测存在于程序中变量的定义和使用之间的各种依赖关系是必要的。考虑了跨越过程边界的定义-使用依赖关系的计算。特别地,介绍了计算过程间定义-使用链和使用-定义链以及在过程中发生更改时增量更新链的有效技术。首先对每个过程的过程内定义和使用信息进行抽象,并用于构建过程间流程图。然后,过程内信息在整个过程间流程图中分两个阶段传播,以获得过程间到达定义和可到达用途的完整集合。过程间的定义-使用链和使用-定义链是从这些到达的信息中计算出来的。该技术处理由引用参数和全局变量引起的数据流的过程间影响,即使在存在递归的情况下也支持单独编译。该技术已在Sun 3/50工作站上实现,并集成到程序间数据流测试仪中。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Computation of interprocedural definition and use dependencies
The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<>
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Enhancing documents with embedded programs: how Ness extends insets in the Andrew ToolKit Subdivided procedures: a language extension supporting extensible programming Using languages for capture, analysis and display of performance information for parallel and distributed applications Coordination languages for open system design An object model for shared data
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1