houdini an annotation assistant for esc java n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Houdini, an annotation assistant for ESC/Java PowerPoint Presentation
Download Presentation
Houdini, an annotation assistant for ESC/Java

Loading in 2 Seconds...

play fullscreen
1 / 22

Houdini, an annotation assistant for ESC/Java - PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on

Systems Research Center. Houdini, an annotation assistant for ESC/Java. K. Rustan M. Leino Compaq SRC Joint work with Cormac Flanagan. Oxford University, 15 January 2001. Static program checking. Static program checkers. ESC/Java architecture. Warning: Index possibly too big.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Houdini, an annotation assistant for ESC/Java' - cynthia-nichols


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
houdini an annotation assistant for esc java

Systems Research Center

Houdini, an annotation assistant for ESC/Java

K. Rustan M. Leino

Compaq SRC

Joint work with Cormac Flanagan

Oxford University, 15 January 2001

annotation assistant5
Annotation assistant

Houdini

The great ESC wizard!

annotation assistant6
Annotation assistant

Unannotated Java program

Inference engine

Annotated Java program

ESC/Java

Warning messages

basic houdini algorithm
Basic Houdini algorithm

generate candidate set of annotations ;repeat invoke ESC/Java to refute annotations ; remove refuted annotationsuntil quiescence ;

invoke ESC/Java to identify possible defects

candidate annotations
Candidate annotations
  • integer f

//@ invariant f cmpexpr ; cmp {<,<=,==,!=,>=,>}

  • reference f

//@ invariant f != null ;

  • array f

//@ invariant \nonnullelements(f) ;

//@ invariant (\forall int i; 0 <= i && i < expr ==> f[i] != null) ;

//@ invariant f.length cmpexpr ;

houdini input

Houdini guesses“optimistic” annotations

Houdini infers annotations,and reports warnings

… and Houdini always uses any given annotations

Houdini input

Houdini

“library”

“specified library”

“program”

future ongoing work
Future (ongoing) work
  • Streamline guessing
  • Increase performance
  • Rev up user interface
conclusions
Conclusions
  • Houdini can apply the power of ESC/Java to legacy code
  • Houdini is a tool by itself
  • Inferred non-properties are useful in debugging

See also http://research.compaq.com/SRC/esc/