首页> 外文学位 >Logics and algorithms for software model checking.
【24h】

Logics and algorithms for software model checking.

机译:用于软件模型检查的逻辑和算法。

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

摘要

Software model checking, an algorithmic, specification-driven approach to software analysis, has emerged as an active area of research in the last few years, producing a number of successful tools. The central question here is: does a model of a procedural program (typically a context-sensitive or pushdown abstraction) satisfy its requirements (typically expressed using temporal logics or automata)? In this thesis, we study specification formalisms and analysis algorithms applicable to this problem.; We start by observing that classical temporal logics like the mu-calculus or CTL cannot specify "context-sensitive" requirements such as: "If a lock is not held before a call, it must be released before the matching return." A fix, we show, is to model branching behaviors of programs not by computation trees, but by infinite graphs called nested trees. Logics and automata interpreted on these new structures are now defined, and the model checking problem is phrased as: "Does the nested tree generated by a program satisfy a property?" This formulation lets us specify context-sensitive requirements such as pre/post-conditions, "local" dataflow properties, and stack-sensitive access control requirements, and, generally, leads to more modular specifications. Yet, these formalisms are theoretically robust, the complexity of model checking stays the same as before, and symbolic model checking is possible. An application is a specification language (called PAL) that can modularly state context-sensitive safety specifications, and has use in model checking and runtime monitoring of C programs.; On the algorithmic end, we study reachability in pushdown systems, a problem central to software model checking and program analysis that was, for long, believed to intrinsically cubic and behind the cubic bottleneck of its many applications. We offer three subcubic algorithms for this problem, one for the general case, one when the system has no unbounded recursion, and one when there is no recursion at all. The first algorithm views pushdown reachability in a new way---as a computation on sets of system states---and the second algorithm is obtained via a new algorithm for graph transitive closure that is possibly of independent interest. Together, the results identify a gradation in the complexity of the pushdown reachability problem as recursion is restricted.
机译:在过去的几年中,软件模型检查是一种以算法,规范驱动的软件分析方法,已经成为研究的活跃领域,并产生了许多成功的工具。这里的中心问题是:过程程序的模型(通常是上下文相关或下推式抽象)是否满足其要求(通常使用时间逻辑或自动机表达)?在本文中,我们研究了适用于该问题的规范形式和分析算法。我们首先观察到像mu-calculus或CTL这样的经典时间逻辑不能指定“上下文敏感”的要求,例如:“如果在调用之前未持有锁,则必须在匹配返回之前释放它。”我们展示的一种解决方案是,不是通过计算树,而是通过称为嵌套树的无限图来对程序的分支行为进行建模。现在定义了在这些新结构上解释的逻辑和自动机,并且模型检查问题的措辞为:“程序生成的嵌套树是否满足属性?”此公式使我们可以指定上下文相关的要求,例如前置/后置条件,“本地”数据流属性和堆栈敏感的访问控制要求,并且通常会导致更多的模块化规范。但是,这些形式主义在理论上是可靠的,模型检查的复杂性与以前相同,并且可以进行符号模型检查。应用程序是一种规范语言(称为PAL),可以模块化地声明上下文相关的安全规范,并用于模型检查和C程序的运行时监视。在算法方面,我们研究下推系统的可达性,这是软件模型检查和程序分析的核心问题,长期以来,人们一直认为它本质上是立方的,并且落后于许多应用的立方瓶颈。针对此问题,我们提供了三种次立方算法,一种用于一般情况,一种用于系统没有无限递归的算法,另一种则根本没有递归的算法。第一种算法以一种新的方式查看下推可达性-作为对一组系统状态的计算--第二种算法是通过一种新的图传递闭包算法获得的,该算法可能是独立关注的。总之,由于递归受到限制,结果确定了下推可达性问题的复杂性等级。

著录项

  • 作者

    Chaudhuri, Swarat.;

  • 作者单位

    University of Pennsylvania.;

  • 授予单位 University of Pennsylvania.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2007
  • 页码 159 p.
  • 总页数 159
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号