Static Data Race Analysis of Heap-Manipulating C Programs

8

[1]  Michael Hicks,et al.  Existential Label Flow Inference Via CFL Reachability , 2006, SAS.

[2]  Bernhard Steffen,et al.  The Value Flow Graph: A Program Representation for Optimal Program Transformations , 1990, ESOP.

[3]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

[4]  Sanjit A. Seshia,et al.  Modular verification of multithreaded programs , 2005, Theor. Comput. Sci..

[5]  Sriram Sankaranarayanan,et al.  Fast and Accurate Static Data-Race Detection for Concurrent Programs , 2007, CAV.

[6]  Shuvendu K. Lahiri,et al.  Unifying type checking and property checking for low-level code , 2009, POPL '09.

[7]  Mark A. Hillebrand,et al.  VCC: A Practical System for Verifying Concurrent C , 2009, TPHOLs.

[8]  Lars Birkedal,et al.  A region inference algorithm , 1998, TOPL.

[9]  Bor-Yuh Evan Chang,et al.  Relational inductive shape analysis , 2008, POPL '08.

[10]  Helmut Seidl,et al.  Region Analysis for Race Detection , 2009, SAS.

[11]  Bernhard Steffen,et al.  The Interprocedural Coincidence Theorem , 1992, CC.

[12]  Varmo Vene,et al.  A Smooth Combination of Linear and Herbrand Equalities for Polynomial Time Must-Alias Analysis , 2009, FM.

[13]  Sumit Gulwani,et al.  An Abstract Domain for Analyzing Heap-Manipulating Low-Level Software , 2007, CAV.

[14]  Varmo Vene,et al.  Goblint : Path-Sensitive Data Race Analysis ? , 2009 .

[15]  Helmut Seidl,et al.  Precise interprocedural analysis through linear algebra , 2004, POPL.

[16]  Parosh Aziz Abdulla,et al.  Monotonic Abstraction for Programs with Dynamic Memory Heaps , 2008, CAV.

[17]  Sumit Gulwani,et al.  Assertion Checking over Combined Abstraction of Linear Arithmetic and Uninterpreted Functions , 2006, ESOP.

[18]  Alexander Aiken,et al.  Conditional must not aliasing for static race detection , 2007, POPL '07.

[19]  Roman Manevich,et al.  Heap Decomposition for Concurrent Shape Analysis , 2008, SAS.

[20]  Michael Karr,et al.  Affine relationships among variables of a program , 1976, Acta Informatica.

[21]  Martin C. Rinard,et al.  Analysis of Multithreaded Programs , 2001, SAS.

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

[23]  Bor-Yuh Evan Chang,et al.  Boogie: A Modular Reusable Verifier for Object-Oriented Programs , 2005, FMCO.

[24]  H. Jonkers Abstract storage structures : (preprint) , 1981 .

[25]  Sorin Lerner,et al.  RELAY: static race detection on millions of lines of code , 2007, ESEC-FSE '07.

[26]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[27]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[28]  Thomas A. Henzinger,et al.  Interface Compatibility Checking for Software Modules , 2002, CAV.

[29]  Ioannis T. Kassios Dynamic Frames: Support for Framing, Dependencies and Sharing Without Restrictions , 2006, FM.

[30]  Hagit Attiya,et al.  Sequential verification of serializability , 2010, POPL '10.

[31]  Viktor Vafeiadis,et al.  Bi-abductive Resource Invariant Synthesis , 2009, APLAS.

[32]  Viktor Kuncak,et al.  Using First-Order Theorem Provers in the Jahob Data Structure Verification System , 2007, VMCAI.

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

[34]  Armin Biere,et al.  Using Block-Local Atomicity to Detect Stale-Value Concurrency Errors , 2004, ATVA.

[35]  Marcus Nilsson,et al.  Regular Model Checking , 2000, CAV.

[36]  Jong-Deok Choi,et al.  Interprocedural pointer alias analysis , 1999, TOPL.

[37]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.

[38]  Helmut Seidl,et al.  Upper Adjoints for Fast Inter-procedural Variable Equalities , 2008, ESOP.

[39]  Sumit Gulwani,et al.  Computing Procedure Summaries for Interprocedural Analysis , 2007, ESOP.

[40]  Helmut Seidl,et al.  Shape Analysis of Low-Level C with Overlapping Structures , 2010, VMCAI.

[41]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[42]  Roman Manevich,et al.  Shape Analysis by Graph Decomposition , 2007, TACAS.

[43]  Reinhard Wilhelm,et al.  A semantics for procedure local heaps and its abstractions , 2005, POPL '05.

[44]  Sumit Gulwani,et al.  A polynomial-time algorithm for global value numbering , 2004, Sci. Comput. Program..

[45]  Thomas W. Reps,et al.  A framework for numeric analysis of array operations , 2005, POPL '05.

[46]  Sumit Gulwani,et al.  A combination framework for tracking partition sizes , 2009, POPL '09.

[47]  Xuezheng Liu,et al.  Conditional correlation analysis for safe region-based memory management , 2008, PLDI '08.

[48]  Jakob Rehof,et al.  Type-base flow analysis: from polymorphic subtyping to CFL-reachability , 2001, POPL '01.

[49]  DeutschAlain Interprocedural may-alias analysis for pointers , 1994 .

[50]  Martin C. Rinard,et al.  Symbolic bounds analysis of pointers, array indices, and accessed memory regions , 2005, TOPL.

[51]  H. Seidl,et al.  Global invariants for analysing multi-threaded applications , 2003, Proceedings of the Estonian Academy of Sciences. Physics. Mathematics.

[52]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[53]  Radu Rugina,et al.  Region-based shape analysis with tracked locations , 2005, POPL '05.

[54]  Jan Wen Voung,et al.  Dataflow analysis for concurrent programs using datarace detection , 2008, PLDI '08.

[55]  Jeffrey S. Foster,et al.  LOCKSMITH: context-sensitive correlation analysis for race detection , 2006, PLDI '06.

[56]  Daniel Kroening,et al.  Model checking concurrent linux device drivers , 2007, ASE.

[57]  Peter W. O'Hearn,et al.  Compositional Shape Analysis by Means of Bi-Abduction , 2011, JACM.

[58]  Helmut Seidl,et al.  A Faster Solver for General Systems of Equations , 1999, Sci. Comput. Program..

[59]  Frank Piessens,et al.  VeriCool: An Automatic Verifier for a Concurrent Object-Oriented Language , 2008, FMOODS.

[60]  Alexey Gotsman,et al.  Thread-modular shape analysis , 2007, PLDI '07.

[61]  Gerard J. Holzmann,et al.  The power of 10: rules for developing safety-critical code , 2006, Computer.

[62]  Alan Mycroft,et al.  Kilim: Isolation-Typed Actors for Java , 2008, ECOOP.

[63]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

[64]  Alexander Aiken,et al.  Effective static race detection for Java , 2006, PLDI '06.

[65]  Peter W. O'Hearn,et al.  Shape Analysis for Composite Data Structures , 2007, CAV.

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

[67]  Helmut Seidl,et al.  Analysis of Modular Arithmetic , 2005, ESOP.

[68]  Wolfram Schulte,et al.  A Precise Yet Efficient Memory Model For C , 2009, Electron. Notes Theor. Comput. Sci..

[69]  Roman Manevich,et al.  Thread Quantification for Concurrent Shape Analysis , 2008, CAV.

[70]  Vineet Kahlon,et al.  Reasoning About Threads Communicating via Locks , 2005, CAV.

[71]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[72]  Mike Paterson,et al.  Linear unification , 1976, STOC '76.

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

[74]  Jakob Rehof,et al.  Scalable context-sensitive flow analysis using instantiation constraints , 2000, PLDI '00.

[75]  Vineet Kahlon Bootstrapping: a technique for scalable flow and context-sensitive pointer alias analysis , 2008, PLDI '08.

[76]  Patrick Cousot,et al.  Static Determination of Dynamic Properties of Recursive Procedures , 1977, Formal Description of Programming Concepts.

[77]  Stephen N. Freund,et al.  Detecting race conditions in large programs , 2001, PASTE '01.

[78]  Thomas W. Reps,et al.  Finite differencing of logical formulas for static analysis , 2010, TOPL.

[79]  Shuvendu K. Lahiri,et al.  A Reachability Predicate for Analyzing Low-Level Software , 2007, TACAS.

[80]  Frank Piessens,et al.  Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic , 2009, ECOOP.

[81]  Sorin Lerner,et al.  ESP: path-sensitive program verification in polynomial time , 2002, PLDI '02.

[82]  Xiao Ma,et al.  MUVI: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs , 2007, SOSP.

[83]  Yun Zhang,et al.  Static data race detection for concurrent programs with asynchronous calls , 2009, ESEC/FSE '09.

[84]  Peter W. O'Hearn,et al.  Beyond Reachability: Shape Abstraction in the Presence of Pointer Arithmetic , 2006, SAS.

[85]  Helmut Seidl,et al.  Checking Herbrand Equalities and Beyond , 2005, VMCAI.

[86]  Helmut Seidl,et al.  Interprocedural Herbrand Equalities , 2005, ESOP.

[87]  Martin C. Rinard,et al.  Ownership types for safe region-based memory management in real-time Java , 2003, PLDI '03.