首页> 外文会议>IEEE Software Engineering Workshop >Abstracting Pointers for a Verifying Compiler
【24h】

Abstracting Pointers for a Verifying Compiler

机译:验证编译器的抽象指针

获取原文

摘要

Gregory Kulczycki Virginia Tech Falls Church, VA, USA gregwk@vt.edu Heather Keown, Murali Sitaraman Clemson University Clemson, SC, USA {hkeown, murali}@cs.clemson.edu Bruce W. Weide The Ohio State University Columbus, OH, USA weide.1@osu.edu Abstract The ultimate objective of a verifying compiler is to prove that proposed code implements a full behavioral specification. Experience reveals this to be especially difficult for programs that involve pointers or refer- ences and linked data structures. In some situations, pointers are unavoidable; in some others, verification can be simplified through suitable abstractions. Re- gardless, a verifying compiler should be able to handle both cases, preferably using the same set of rules. To illustrate how this can be done, we examine two ap- proaches to full verification. One replaces language- supplied indirection with software components whose specifications abstract pointers and pointer- manipulation operations. Another approach uses ab- stract specifications to encapsulate data structures that pointers and references are often used to implement, limiting verification complications to inside the imple- mentations of these components. Using a modular, specification-based tool we have developed for verifi- cation condition generation, we show that full verifica- tion of programs with and without the direct use of pointers can be handled similarly. There is neither a need to focus on selected pointer properties, such as the absence of null references or cycles, nor a need for special rules to handle pointers.
机译:Gregory Kulczycki弗吉尼亚科技瀑布教堂,VA,USA Gregwk@vt.edu石南康宁,Murali Sitaraman克莱姆森大学克莱姆森,SC,美国{Hkeown,Muraliii }@cs.clemson.edu Bruce W. Wiide俄亥俄州大学哥伦布,哦, USA Wiide1@osu.edu摘要验证编译器的最终目标是证明提出的代码实现了完整的行为规范。经验揭示了涉及指针或引用和链接数据结构的程序特别困难。在某些情况下,指针是不可避免的;在某些情况下,可以通过合适的抽象简化验证。重新搜索,验证编译器应该能够处理这两种情况,最好是使用相同的规则集。为了说明如何完成这一点,我们将检查两个验证验证。一个替换语言提供的间接与规格抽象指针和指针操作操作的软件组件。另一种方法使用AB - Stract规范来封装数据结构,该数据结构通常用于实现这些组件的IMPLES内部的验证并发症。使用模块化规格的工具,我们已经为验证条件生成开发,我们表明可以类似地处理具有和不直接使用指针的程序的全面验证。既没有需要专注于所选指针属性,例如缺少空引用或周期,也不需要处理指针的特殊规则。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号