10.1145/1869459.1869482acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

What can the GC compute efficiently?: a language for heap assertions at GC time

Published:17 October 2010Publication History

ABSTRACT

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.

References

  1. }}E. E. Aftandilian and S. Z. Guyer. GC assertions: using the garbage collector to check heap properties. In PLDI '09: Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, pages 235--­244, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive optimization in the Jalapeno JVM. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 47­--65, New York, NY, USA, 2000. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}M. Arnold, M. Vechev, and E. Yahav. QVM: an efficient runtime for detecting defects in deployed systems. In OOPSLA '08: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, pages 143­--162, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 169--­190, New York, NY, USA, Oct. 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}P. T. Darga and C. Boyapati. Efficient software model checking of data structure properties. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 363­--382, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}B. Demsky, M. D. Ernst, P. J. Guo, S. McCamant, J. H. Perkins, and M. Rinard. Inference and enforcement of data structure consistency specifications. In ISSTA '06: Proceedings of the 2006 international symposium on Software testing and analysis, pages 233­--244, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}B. Elkarablieh, I. Garcia, Y. L. Suen, and S. Khurshid. Assertion-based repair of complex data structures. In ASE '07: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pages 64­--73, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}B. Elkarablieh, S. Khurshid, D. Vu, and K. S. McKinley. STARC: Static analysis for efficient repair of complex data. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 387­--404, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 234--­245. ACM, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}N. Immerman. Descriptive Complexity. Springer, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}D. Jackson. Object models as heap invariants. Programming methodology, pages 247--268, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}S. McPeak and G. Necula. Data structure specifications via local equality axioms. In Computer Aided Verification, pages 476­--490, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}B. Meyer. Object-Oriented Software Construction. Prentice Hall PTR, 2nd edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney. Producing wrong data without doing anything obviously wrong! In ASPLOS '09: Proceeding of the 14th international conference on Architectural support for programming languages and operating systems, pages 265-­276, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}G. Ramalingam. The undecidability of aliasing. ACM Transactions on Programming Languages and Systems, 16(5):1467­--1471, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}D. Rayside and L. Mendel. Object ownership profiling: a technique for finding and fixing memory leaks. In ASE '07: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pages 194­--203, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}D. Reimer, E. Schonberg, K. Srinivas, H. Srinivasan, J. Dolby, A. Kershenbaum, and L. Koved. Validating structural properties of nested objects. In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 294­--304, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In ACM Symposium on the Principles of Programming Languages, pages 105--­118, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}A. Shankar and R. Bodik. DITTO: automatic incrementalization of data structure invariant checks (in Java). In PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 310­--319, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}Standard Performance Evaluation Corporation. SPECjvm98 Documentation, release 1.03 edition, 1999.Google ScholarGoogle Scholar
  21. }}Standard Performance Evaluation Corporation. SPECjbb2000 Documentation, release 1.01 edition, 2001.Google ScholarGoogle Scholar
  22. }}M. Vechev, E. Yahav, G. Yorsh, and B. Bloom. PHALANX: Parallel Checking of Expressive Heap Assertions. In ACM International Symposium on Memory Management, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}P. R. Wilson. Uniprocessor Garbage Collection Techniques. In Y. Bekkers and J. Cohen, editors, ACM International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 1­42, St. Malo, France, Sept. 1992. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}K. Zee, V. Kuncak, and M. Rinard. Full functional verification of linked data structures. In ACM Conference on Programming Languages Design and Implementation, pages 349--­361, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. What can the GC compute efficiently?: a language for heap assertions at GC time

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!