首页> 外文学位 >Region logic: Local reasoning for Java programs and its automation.
【24h】

Region logic: Local reasoning for Java programs and its automation.

机译:区域逻辑:Java程序的本地推理及其自动化。

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

摘要

Shared mutable objects are a cornerstone of the object-oriented paradigm. The ability to share mutable data eliminates unnecessary cloning and gives rise to efficient data structures. Yet, formal reasoning about partial correctness of object-oriented programs is notoriously difficult due to the very same features, viz., sharing and mutable objects. The core problem is aliasing, and one of the contributions of this thesis is a program logic designed to control aliasing through explicit use of effects and disjointedness assertions.;We propose a straightforward adaptation of Hoare logic to reason about (sequential) Java programs. The logic employs regions (sets of references) in a novel way, by using them in ghost state, effects and assertions. The aptly named---region logic---embodies "local reasoning" as witnessed by separation logic, without resorting to non-standard semantics or higher-order constructs. Region logic is formalized (and proven sound) with respect to a core subset of Java. Several illustrative examples including subject/observer and composite design patterns are specified and proven partially correct. The assertion language of region logic subsumes boolean algebra and includes (function) image expressions. Full assertion language is quite expressive, e.g., assertions can be quantified, however, its restriction to quantifier-free (QF) assertions yields a decidable theory.;Our thesis maintains that the logic is amenable to automation. To that end we implement an automated verifier for region logic; the verifier computes verification conditions which are first-order formulas. The verifier is used to specify and verify a suite of programs including those aforementioned. We also study, i.e., formalize and prove correct, decision procedures for QF assertions. We implement a semi-decision procedure integrated with a (satisfiability modulo theories) solver. To test its feasibility, we compare the implementation with an axiomatization based on quantified formulas; preliminary results are very encouraging. For a restricted language, we give an NP-complete decision procedure and prove its correctness.
机译:共享的可变对象是面向对象范例的基石。共享可变数据的能力消除了不必要的克隆,并产生了有效的数据结构。然而,由于具有相同的功能,即共享和可变的对象,关于面向对象程序的部分正确性的形式化推理非常困难。核心问题是别名,本论文的贡献之一是设计为通过显式使用效果和脱节断言来控制别名的程序逻辑。;我们提出了将Hoare逻辑直接推理用于(顺序)Java程序的推理。逻辑通过以虚假状态,效果和断言使用区域(参考集)以新颖的方式使用它们。适当命名的区域逻辑体现了由分离逻辑证明的“局部推理”,而无需求助于非标准语义或高阶构造。区域逻辑相对于Java的核心子集已形式化(并经过验证)。指定了几个说明性示例,包括主题/观察者和复合设计模式,并被证明部分正确。区域逻辑的断言语言包含布尔代数,并包含(函数)图像表达式。完整的断言语言非常具有表达能力,例如可以对断言进行量化,但是其对无量词(QF)断言的限制产生了可判定的理论。;我们的论文认为,该逻辑适合自动化。为此,我们实现了区域逻辑的自动验证器。验证者计算验证条件,这些条件是一阶公式。验证程序用于指定和验证一组程序,包括上述程序。我们还将研究(即形式化并证明)正确的QF声明决策程序。我们实现了与(可满足性模理论)求解器集成的半决策程序。为了测试其可行性,我们将实现与基于量化公式的公理化进行了比较;初步结果令人鼓舞。对于受限语言,我们给出一个NP完全决策程序并证明其正确性。

著录项

  • 作者

    Rosenberg, Stan.;

  • 作者单位

    Stevens Institute of Technology.;

  • 授予单位 Stevens Institute of Technology.;
  • 学科 Logic.;Computer Science.
  • 学位 Ph.D.
  • 年度 2011
  • 页码 217 p.
  • 总页数 217
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号