skip to main content
10.1145/1806651.1806658acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

PHALANX: parallel checking of expressive heap assertions

Published:05 June 2010Publication History

ABSTRACT

Unrestricted use of heap pointers makes software systems difficult to understand and to debug. To address this challenge, we developed PHALANX -- a practical framework for dynamically checking expressive heap properties such as ownership, sharing and reachability. PHALANX uses novel parallel algorithms to efficiently check a wide range of heap properties utilizing the available cores.

PHALANX runtime is implemented on top of IBM's Java production virtual machine. This has enabled us to apply our new techniques to real world software. We checked expressive heap properties in various scenarios and found the runtime support to be valuable for debugging and program understanding. Further, our experimental results on DaCapo and other benchmarks indicate that evaluating heap queries using parallel algorithms can lead to significant performance improvements, often resulting in linear speedups as the number of cores increases.

To encourage adoption by programmers, we extended an existing JML compiler to translate expressive JML assertions about the heap into their efficient implementation provided by PHALANX. To debug her program, a programmer can annotate it with expressive heap assertions in JML, that are efficiently checked by PHALANX.

References

  1. AFTANDILIAN, E., AND GUYER, S. Z. GC assertions: using the garbage collector to check heap properties. In PLDI (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ALDRICH, J., KOSTADINOV, V., AND CHAMBERS, C. Alias annotations for program understanding. In OOPSLA (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. ANDERSEN, L. O. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen, May 1994.Google ScholarGoogle Scholar
  4. ARNOLD, M., VECHEV, M. T., AND YAHAV, E. QVM: an efficient runtime for detecting defects in deployed systems. In OOPSLA (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. BAKER, H. G. 'Use-once' variables and linear objects -- storage management, reflection and multi-threading. SIGPLAN Notices 30, 1 (1995), 45--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. BLACKBURN, S. M., GARNER, R., HOFFMAN, C., KHAN, A. M., MCKINLEY, K. S., BENTZUR, R., DIWAN, A., FEINBERG, D., FRAMPTON, D., GUYER, S. Z., HIRZEL, M., HOSKING, A., JUMP, M., LEE, H., MOSS, J. E. B., PHANSALKAR, A., STEFANOVIĆ, D., VANDRUNEN, T., VON DINCKLAGE, D., AND WIEDERMANN, B. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA (2006), pp. 169--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. BOND, M. D., AND MCKINLEY, K. S. Bell: bit-encoding online memory leak detection. SIGOPS Oper. Syst. Rev. 40, 5 (2006), 61--72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. BOYAPATI, C., LISKOV, B., AND SHRIRA, L. Ownership types for object encapsulation. In POPL (2003), pp. 213--223. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. CALCAGNO, C., DISTEFANO, D., O'HEARN, P., AND YANG, H. Compositional shape analysis by means of bi--abduction. In POPL (2009), pp. 289--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. CHILIMBI, T. M., AND GANAPATHY, V. HeapMD: identifying heap-based bugs using anomaly detection. In ASPLOS (2006), pp. 219--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. CLARKE, D. G. Object ownership and containment. PhD thesis, University of New South Wales, New South Wales, Australia, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. CLARKE, D. G., POTTER, J. M., AND NOBLE, J. Ownership types for flexible alias protection. In OOPSLA (1998), pp. 48--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. DISTEFANO, D., AND PARKINSON, M. J. jStar: towards practical verification for Java. In OOPSLA '08 (2008), pp. 213--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. GROTHOFF, C., PALSBERG, J., AND VITEK, J. Encapsulating objects with confined types. ACM Trans. Prog. Lang. Syst. 29, 6 (2007), 32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. HAUSWIRTH, M., AND CHILIMBI, T. M. Low-overhead memory leak detection using adaptive statistical profiling. SIGPLAN Not. 39, 11 (2004), 156--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. HOGG, J. Islands: aliasing protection in object-oriented languages. In OOPSLA '91 (New York, NY, USA, 1991), ACM, pp. 271--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. JUMP, M., AND MCKINLEY, K. S. Cork: dynamic memory leak detection for garbage-collected languages. In POPL (2007), pp. 31--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. LEAVENS, G. T., CHEON, Y., CLIFTON, C., RUBY, C., AND COK, D. R. How the design of JML accommodates both runtime assertion checking and formal verification. Sci. Comput. Program. 55, 1--3 (2005), 185--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. LEV-AMI, T., AND SAGIV, M. TVLA: A framework for Kleene based static analysis. In SAS (2000), vol. 1824, pp. 280--301. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. MICHAEL, M. M., VECHEV, M. T., AND SARASWAT, V. A. Idem-potent work stealing. In PPoPP '09 (2008), pp. 45--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. MITCHELL, N. The runtime structure of object ownership. In ECOOP (2006), pp. 74--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. MITCHELL, N., AND SEVITSKY, G. The causes of bloat, the limits of health. In OOPSLA (2007), pp. 245--260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. MÜLLER, P., AND RUDICH, A. Ownership transfer in universe types. In OOPSLA (2007), pp. 461--478. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. NAIK, M., AIKEN, A., AND WHALEY, J. Effective static race detection for java. In PLDI (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. RODITTY, L. A faster and simpler fully dynamic transitive closure. In SODA (2003), pp. 404--412. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. SAGIV, M., REPS, T., AND WILHELM, R. Parametric shape analysis via 3-valued logic. (TOPLAS) 24, 3 (2002), 217--298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. SHACHAM, O., VECHEV, M., AND YAHAV, E. Chameleon: adaptive selection of collections. In PLDI (2009), pp. 408--418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. STEENSGAARD, B. Points-to analysis in almost linear time. In POPL (1996), pp. 32--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. YANG, H., LEE, O., BERDINE, J., CALCAGNO, C., COOK, B., DISTEFANO, D., AND O'HEARN, P. W. Scalable shape analysis for >systems code. In CAV (2008), pp. 385--398. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. PHALANX: parallel checking of expressive heap assertions

        Recommendations

        Comments

        Login options

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

        Sign in
        • Published in

          cover image ACM Conferences
          ISMM '10: Proceedings of the 2010 international symposium on Memory management
          June 2010
          140 pages
          ISBN:9781450300544
          DOI:10.1145/1806651
          • General Chair:
          • Jan Vitek,
          • Program Chair:
          • Doug Lea
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 45, Issue 8
            ISMM '10
            August 2010
            129 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1837855
            Issue’s Table of Contents

          Copyright © 2010 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 5 June 2010

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate72of156submissions,46%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader