The undecidability of aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adaptive optimization in the Jalapeño JVM
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
Descriptive Complexity and Model Checking
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
Object models as heap invariants
Programming methodology
Validating structural properties of nested objects
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Efficient software model checking of data structure properties
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
DITTO: automatic incrementalization of data structure invariant checks (in Java)
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Starc: static analysis for efficient repair of complex data
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Assertion-based repair of complex data structures
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Object ownership profiling: a technique for finding and fixing memory leaks
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
QVM: an efficient runtime for detecting defects in deployed systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Producing wrong data without doing anything obviously wrong!
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
GC assertions: using the garbage collector to check heap properties
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
PHALANX: parallel checking of expressive heap assertions
Proceedings of the 2010 international symposium on Memory management
Data structure specifications via local equality axioms
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Heapviz: interactive heap visualization for program understanding and debugging
Proceedings of the 5th international symposium on Software visualization
LeakChaser: helping programmers narrow down causes of memory leaks
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Distributed garbage collection for managed X10
Proceedings of the 2012 ACM SIGPLAN X10 Workshop
PQL: a purely-declarative java extension for parallel programming
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Synthesizing iterators from abstraction functions
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Finding reusable data structures
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Generating sound and effective memory debuggers
Proceedings of the 2013 international symposium on memory management
Hi-index | 0.01 |
We present the DeAL language for heap assertions that are efficiently evaluated during garbage collection time. DeAL is a rich, declarative, logic-based language whose programs are guaranteed to be executable with good whole-heap locality, i.e., within a single traversal over every live object on the heap and a finite neighborhood around each object. As a result, evaluating DeAL programs incurs negligible cost: for simple assertion checking at each garbage collection, the end-to-end execution slowdown is below 2%. DeAL is integrated into Java as a VM extension and we demonstrate its efficiency and expressiveness with several applications and properties from the past literature. Compared to past systems for heap assertions, DeAL is distinguished by its very attractive expressiveness/efficiency tradeoff: it o ers a significantly richer class of assertions than what past systems could check with a single traversal. Conversely, past systems that can express the same (or more) complex assertions as DeAL do so only by su ering orders-of-magnitude higher costs.