Download presentation
Presentation is loading. Please wait.
Published byBlaise Smith Modified over 9 years ago
2
Houdini, an annotation assistant for ESC/Java K. Rustan M. Leino Compaq SRC Joint work with Cormac Flanagan K. Rustan M. Leino Compaq SRC Joint work with Cormac Flanagan Systems Research Center Oxford University, 15 January 2001
3
Static program checking
4
Static program checkers
5
ESC/Java architecture
6
ESC/Java example Warning: Index possibly too big
8
Annotation assistant
13
HoudiniHoudini The great ESC wizard!
14
Annotation assistant Unannotated Java program Inference engine Annotated Java program ESC/Java Warning messages
15
Basic Houdini algorithm generate candidate set of annotations ; repeat invoke ESC/Java to refute annotations ; remove refuted annotations until quiescence ; invoke ESC/Java to identify possible defects
16
Candidate annotations integer f //@ invariant f cmp expr ; cmp { =,>} reference f //@ invariant f != null ; array f //@ invariant \nonnullelements(f) ; //@ invariant (\forall int i; 0 f[i] != null) ; //@ invariant f.length cmp expr ;
17
Houdini input Houdini “program” “specified library” “library” Houdini guesses “optimistic” annotations Houdini infers annotations, and reports warnings … and Houdini always uses any given annotations
18
Houdini output
19
ExperienceExperience
20
Static program checkers HoudiniHoudini
21
Future (ongoing) work Streamline guessing Increase performance Rev up user interface
22
ConclusionsConclusions 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/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.