Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1

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

7

8 Annotation assistant

9

10

11

12

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/

23


Download ppt "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."

Similar presentations


Ads by Google