Skip to main content
QUICK REVIEW

[论文解读] Alias and Change Calculi, Applied to Frame Inference

Alexander Kogtenkov, Bertrand Meyer|arXiv (Cornell University)|Jul 11, 2013
Logic, programming, and type systems参考文献 15被引用 3
一句话总结

本文提出了别名与变化演算(alias and change calculi),这是一种用于面向对象程序精确别名分析的形式化框架,可实现'modifies'子句的自动推断——这是解决框架问题的关键。通过以高精度建模对象引用和状态变化,该方法支持在强类型语言中进行框架推断,并成功应用于对现有形式化指定的库推断'modifies'子句。

ABSTRACT

Alias analysis, which determines whether two expressions in a program may reference to the same object, has many potential applications in program construction and verification. We have developed a theory for alias analysis, the "alias calculus", implemented its application to an object-oriented language, and integrated the result into a modern IDE. The calculus has a higher level of precision than many existing alias analysis techniques. One of the principal applications is to allow automatic change analysis, which leads to inferring "modifies clauses", providing a significant advance towards addressing the Frame Problem. Experiments were able to infer the "modifies" clauses of an existing formally specified library. Other applications, in particular to concurrent programming, also appear possible. The article presents the calculus, the application to frame analysis including ex-perimental results, and other projected applications. The ongoing work includes building more efficient model capturing aliasing properties and soundness proof for its essential elements.

研究动机与目标

  • 通过实现'modifies'子句的自动推断,解决程序验证中的框架问题。
  • 为面向对象程序中对象引用的静态分析开发一种高精度别名演算。
  • 将别名与变化分析集成到现代IDE中,以支持实际的软件构建。
  • 支持高级程序分析应用,包括并发编程和形式化验证。
  • 为变化跟踪和对象状态修改推理提供可靠基础。

提出的方法

  • 别名演算使用形式化规则建模对象引用及其潜在共享,以确定两个表达式是否可能指向同一对象。
  • 变化演算基于别名信息,追踪对象状态在程序操作中的演化过程。
  • 该框架与强类型面向对象语言集成,以自动推断'modifies'子句。
  • 该方法基于对象引用和状态变化的形式化模型,核心组件具有可靠性保证。
  • 实验将该演算应用于一个现有形式化指定的库,以推断'modifies'子句。
  • 系统已集成至IDE中,以支持交互式程序构建与验证。

实验结果

研究问题

  • RQ1别名与变化演算能否实现对面向对象程序中对象引用的精确静态分析?
  • RQ2该演算能否自动推断程序方法的'modifies'子句,从而解决框架问题?
  • RQ3在实际环境中,该别名演算的精度与现有技术相比如何?
  • RQ4该框架能否有效集成到IDE中以支持开发者辅助?
  • RQ5除框架推断外,该演算在并发编程等实际应用中有哪些潜在用途?

主要发现

  • 别名演算的精度高于许多现有别名分析技术。
  • 该框架成功为一个现有形式化指定的库推断出'modifies'子句,证明了其实际适用性。
  • 集成至IDE后,可实现实时的程序构建与验证支持。
  • 该方法为变化分析提供了可靠基础,支持形式化验证与框架推断。
  • 预期应用包括并发编程与高级静态分析,目前正致力于提升效率与形式化可靠性证明。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。