Extended static checking for Java

  • Authors:
  • Cormac Flanagan;K. Rustan M. Leino;Mark Lillibridge;Greg Nelson;James B. Saxe;Raymie Stata

  • Affiliations:
  • Microsoft Research, Redmond, WA;Microsoft Research, Redmond, WA;Compaq Systems Research, Palo Alto, CA;Compaq Systems Research, Palo Alto, CA;Compaq Systems Research, Palo Alto, CA;Compaq Systems Research, Palo Alto, CA

  • Venue:
  • PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
  • Year:
  • 2002

Quantified Score

Hi-index 0.06

Visualization

Abstract

Software development and maintenance are costly endeavors. The cost can be reduced if more software defects are detected earlier in the development cycle. This paper introduces the Extended Static Checker for Java (ESC/Java), an experimental compile-time program checker that finds common programming errors. The checker is powered by verification-condition generation and automatic theorem-proving techniques. It provides programmers with a simple annotation language with which programmer design decisions can be expressed formally. ESC/Java examines the annotated software and warns of inconsistencies between the design decisions recorded in the annotations and the actual code, and also warns of potential runtime errors in the code. This paper gives an overview of the checker architecture and annotation language and describes our experience applying the checker to tens of thousands of lines of Java programs.