Skip to main content

Houdini, an Annotation Assistant for ESC/Java

  • Conference paper
  • First Online:
FME 2001: Formal Methods for Increasing Software Productivity (FME 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2021))

Included in the following conference series:

Abstract

A static program checker that performs modular checking can check one program module for errors without needing to analyze the entire program. Modular checking requires that each module be accom- panied by annotations that specify the module. To help reduce the cost of writing specifications, this paper presents Houdini, an annotation as- sistant for the modular checker ESC/Java. To infer suitable ESC/Java annotations for a given program, Houdini generates a large number of candidate annotations and uses ESC/Java to verify or refute each of these annotations. The paper describes the design, implementation, and preliminary evaluation of Houdini.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. William R. Bush, Jonathan D. Pincus, and David J. Sielaff. A static analyzer for finding dynamic programming errors. Software Practice & Experience, 30:775–802, 2000.

    Article  MATH  Google Scholar 

  2. Patrick Cousot and Radhia Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the Fourth Annual ACM Symposium on Principles of Programming Languages, pages 238–252, January 1977.

    Google Scholar 

  3. Michael D. Ernst, Adam Czeisler, William G. Griswold, and David Notkin. Quickly detecting relevant program invariants. In Proceedings of the 22nd International Conference on Software Engineering (ICSE 2000), Limerick, Ireland, June 2000.

    Google Scholar 

  4. Extended Static Checking home page, Compaq Systems Research Center. On the Web at http://www.research.compaq.com/SRC/esc/.

  5. Cormac Flanagan. Effective Static Debugging via Componential Set-Based Analysis. PhD thesis, Rice University, Houston, Texas, May 1997.

    Google Scholar 

  6. Cormac Flanagan and Steven N. Freund. Type-based race detection for Java. In Proceedings of the 2000 ACM SIGPLAN conference on Programming Design and Implementation (PLDI), pages 219–232, 2000.

    Google Scholar 

  7. Cormac Flanagan, Rajeev Joshi, and K. Rustan M. Leino. Annotation inference for modular checkers. Information Processing Letters, 2001. To appear.

    Google Scholar 

  8. Cormac Flanagan and James B. Saxe. Avoiding exponential explosion: Generating compact verification conditions. In Conference Record of the 28th Annual ACM Symposium on Principles of Programming Languages. ACM, January 2001. To appear.

    Google Scholar 

  9. S. Graf and H. Saidi. Construction of abstract state graphs with PVS. In O. Grumberg, editor, CAV 97: Computer Aided Verification, Lecture Notes in Computer Science 1254, pages 72–83. Springer-Verlag, 1997.

    Google Scholar 

  10. Nevin Heintze. Set-based analysis of ML programs. In Proceedings of the ACM Conference on Lisp and Functional Programming, pages 306–317, 1994.

    Google Scholar 

  11. Allan Heydon and Marc A. Najork. Mercator: A scalable, extensible web crawler. World Wide Web, 2(4):219–229, December 1999.

    Article  Google Scholar 

  12. Java2html, Compaq Systems Research Center. On the Web at http://www.research.compaq.com/SRC/software/.

  13. K. Rustan M. Leino, Greg Nelson, and James B. Saxe. ESC/Java users manual. Technical Note 2000-002, Compaq Systems Research Center, October 2000.

    Google Scholar 

  14. K. Rustan M. Leino, James B. Saxe, and Raymie Stata. Checking Java programs via guarded commands. In Bart Jacobs, Gary T. Leavens, Peter Müller, and Arnd Poetzsch-Heffter, editors, Formal Techniques for Java Programs, Technical Report 251. Fernuniversität Hagen, May 1999. Also available as Technical Note 1999-002, Compaq Systems Research Center, from http://www.research.compaq.com/SRC/publications/.

  15. The Pachyderm email system, Compaq Systems Research Center. On the Web at http://www.research.compaq.com/SRC/pachyderm/, 1997.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Flanagan, C., Leino, K.R.M. (2001). Houdini, an Annotation Assistant for ESC/Java. In: Oliveira, J.N., Zave, P. (eds) FME 2001: Formal Methods for Increasing Software Productivity. FME 2001. Lecture Notes in Computer Science, vol 2021. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45251-6_29

Download citation

  • DOI: https://doi.org/10.1007/3-540-45251-6_29

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41791-0

  • Online ISBN: 978-3-540-45251-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics