首页> 外文学位 >Automatic techniques for proving correctness of heap-manipulating programs.
【24h】

Automatic techniques for proving correctness of heap-manipulating programs.

机译:证明堆操作程序正确性的自动技术。

获取原文
获取原文并翻译 | 示例

摘要

Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems and cloud systems. The correctness of these programs, especially for security, is highly desirable, as they should provide a trustworthy platform for higher-level applications and the end-users. Unfortunately, due to its inherent complexity, the verification process of these programs is typically manual/semi-automatic, tedious, and painful. Automating the reasoning behind these verification tasks and decreasing the dependence on manual help is one of the greatest challenges in software verification. This dissertation presents two logic-based automatic software verification systems, namely Strand and Dryad, that help in the task of verification of heap-manipulating programs, which is one of the most complex aspects of modern software that eludes automatic verification. Strand is a logic that combines an expressive heap-logic with an arbitrary data-logic and admits several powerful decidable fragments. The general decision procedures can be used in not only proving programs correct but also in software analysis and testing. Dryad is a family of logics, including Dryad-tree as a first-order logic for trees and Dryad-sep as a dialect of separation logic. Both the two logics are amenable to automated reasoning using the natural proof strategy, a radically new approach to software verification. Dryad and the natural proof techniques are so far the most efficient logic-based approach that can verify the full correctness of a wide variety of challenging programs, including a large number of programs from various open-source libraries. They hold promise of hatching the next-generation automatic verification techniques.
机译:可靠性对于系统软件(例如OS内核,移动浏览器,嵌入式系统和云系统)至关重要。这些程序的正确性,特别是对于安全性,是高度可取的,因为它们应该为更高级别的应用程序和最终用户提供值得信赖的平台。不幸的是,由于其固有的复杂性,这些程序的验证过程通常是手动/半自动,乏味且痛苦的。使这些验证任务背后的推理自动化并减少对手动帮助的依赖是软件验证中的最大挑战之一。本文提出了两种基于逻辑的自动软件验证系统,即Strand和Dryad,它们可以帮助完成堆操作程序的验证任务,而堆操作程序是现代软件中最复杂的方面之一,无法进行自动验证。 Strand是一种将表达性堆逻辑与任意数据逻辑相结合的逻辑,并允许多个强大的可确定片段。一般决策程序不仅可以用于证明程序正确无误,而且可以用于软件分析和测试。树精是一组逻辑,其中树精(Dryad-tree)是树的一阶逻辑,而树精(Dryad-sep)是分离逻辑的方言。这两种逻辑都适合使用自然证明策略(一种完全新的软件验证方法)进行自动推理。 Dryad和自然证明技术是迄今为止最有效的基于逻辑的方法,可以验证各种具有挑战性的程序的完全正确性,这些程序包括来自各种开源库的大量程序。他们有望孵化出下一代自动验证技术。

著录项

  • 作者

    Qiu, Xiaokang.;

  • 作者单位

    University of Illinois at Urbana-Champaign.;

  • 授予单位 University of Illinois at Urbana-Champaign.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2013
  • 页码 211 p.
  • 总页数 211
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号