Boolean Algebra of Shape Analysis Constraints

The parametric shape analysis framework of Sagiv, Reps, and Wilhelm [45,46] uses three-valued structures as dataflow lattice elements to represent sets of states at different program points. The recent work of Yorsh, Reps, Sagiv, Wilhelm [48,50] introduces a family of formulas in (classical, two-valued) logic that are isomorphic to three-valued structures [46] and represent the same sets of concrete states.

[1]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[2]  E. F. CODD,et al.  A relational model of data for large shared data banks , 1970, CACM.

[3]  Hanne Riis Nielson,et al.  Kleene's Logic with Equality , 2001, Inf. Process. Lett..

[4]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[5]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[6]  David Walker,et al.  Alias Types , 2000, ESOP.

[7]  C. A. R. Hoare,et al.  A Trace Model for Pointers and Objects , 1999, ECOOP.

[8]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[9]  Peter W. O'Hearn,et al.  Semantic analysis of pointer aliasing, allocation and disposal in Hoare logic , 2000, PPDP '00.

[10]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[11]  Egon Börger,et al.  Abstract State Machines , 2003 .

[12]  Alain Deutsch,et al.  Interprocedural may-alias analysis for pointers: beyond k-limiting , 1994, PLDI '94.

[13]  Pascal Fradet,et al.  Shape types , 1997, POPL '97.

[14]  Dawson R. Engler,et al.  Checking system rules using system-specific, programmer-written compiler extensions , 2000, OSDI.

[15]  Roman Manevich,et al.  Compactly Representing First-Order Structures for Static Analysis , 2002, SAS.

[16]  Thomas W. Reps,et al.  Finite Differencing of Logical Formulas for Static Analysis , 2003, ESOP.

[17]  Alexandru Nicolau,et al.  A general data dependence test for dynamic, pointer-based data structures , 1994, PLDI '94.

[18]  Viktor Kuncak,et al.  Typestate Checking and Regular Graph Constraints , 2004, ArXiv.

[19]  Nils Klarlund,et al.  MONA Implementation Secrets , 2000, Int. J. Found. Comput. Sci..

[20]  Mark N. Wegman,et al.  Analysis of pointers and structures (with retrospective) , 1990 .

[21]  Thomas W. Reps,et al.  Symbolically Computing Most-Precise Abstract Operations for Shape Analysis , 2004, TACAS.

[22]  David Walker,et al.  Alias Types for Recursive Data Structures , 2000, Types in Compilation.

[23]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[24]  F. E. A Relational Model of Data Large Shared Data Banks , 2000 .

[25]  Nils Klarlund,et al.  Graphs and Decidable Transductions based on Edge Constraints , 1994 .

[26]  Marius Bozga,et al.  Storeless semantics and alias logic , 2003, PPoPP 2003.

[27]  Luca Cardelli,et al.  Deciding validity in a spatial logic for trees , 2005, J. Funct. Program..

[28]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[29]  Viktor Kuncak,et al.  On Role Logic , 2003, ArXiv.

[30]  Francesco Logozzo,et al.  Class-Level Modular Analysis for Object Oriented Languages , 2003, SAS.

[31]  Stéphane Bressan,et al.  Introduction to Database Systems , 2005 .

[32]  R. Stärk,et al.  Abstract State Machines , 2003, Springer Berlin Heidelberg.

[33]  Thomas W. Reps,et al.  Putting static analysis to work for verification: A case study , 2000, ISSTA '00.

[34]  Viktor Kuncak,et al.  Role analysis , 2002, POPL '02.

[35]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[36]  Mark N. Wegman,et al.  Analysis of pointers and structures , 1990, SIGP.

[37]  Neil D. Jones,et al.  A flexible approach to interprocedural data flow analysis and programs with recursive data structures , 1982, POPL '82.

[38]  Laurie J. Hendren,et al.  Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C , 1996, POPL '96.

[39]  Ondrej Lhoták,et al.  Points-to analysis using BDDs , 2003, PLDI '03.

[40]  James R. Larus,et al.  Detecting conflicts between structure accesses , 1988, PLDI '88.

[41]  William R. Bush,et al.  A static analyzer for finding dynamic programming errors , 2000 .

[42]  Thomas Reps,et al.  A decidable logic for linked data structures , 1999 .

[43]  Viktor Kuncak,et al.  Roles Are Really Great! , 2004, ArXiv.

[44]  Noam Rinetzky,et al.  Interprocedural Shape Analysis for Recursive Programs , 2001, CC.

[45]  Kedar S. Namjoshi,et al.  Shape Analysis through Predicate Abstraction and Model Checking , 2003, VMCAI.

[46]  Michael I. Schwartzbach,et al.  Compile-Time Debugging of C Programs Working on Trees , 2000, ESOP.

[47]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[48]  Patrick Cousot,et al.  A static analyzer for large safety-critical software , 2003, PLDI.

[49]  Viktor Kuncak,et al.  A Language for Role Specifications , 2001, LCPC.

[50]  Egon Börger,et al.  Abstract State Machines , 2003 .

[51]  Christoph Meinel,et al.  Algorithms and Data Structures in VLSI Design: OBDD - Foundations and Applications , 2012 .

[52]  Viktor Kuncak,et al.  Existential Heap Abstraction Entailment Is Undecidable , 2003, SAS.

[53]  Thomas W. Reps,et al.  Symbolic Implementation of the Best Transformer , 2004, VMCAI.

[54]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[55]  Anders Møller,et al.  The Pointer Assertion Logic Engine , 2000 .

[56]  Nils Klarlund,et al.  Automatic verification of pointer programs using monadic second-order logic , 1997, PLDI '97.

[57]  敏嗣 弓場,et al.  20世紀の名著名論:E. F. Codd : A Relational Model of Data for Large Shared Data Banks , 2003 .

[58]  Michael Benedikt,et al.  A Decidable Logic for Describing Linked Data Structures , 1999, ESOP.

[59]  Nils Klarlund,et al.  Graph types , 1993, POPL '93.

[60]  C. J. Date An Introduction to Database Systems, 6th Edition , 1995 .

[61]  Gerard J. Holzmann,et al.  UNO: Static Source Code Checking for User-Defined Properties 1 , 2002 .

[62]  Andreas Podelski,et al.  Relative Completeness of Abstraction Refinement for Software Model Checking , 2002, TACAS.