Presentation is loading. Please wait.

Presentation is loading. Please wait.

K. Rustan M. Leino RiSE, Microsoft Research Typing, Analysis and Verification of Heap-Manipulating Programs Dagstuhl, Germany 20 July 2009.

Similar presentations


Presentation on theme: "K. Rustan M. Leino RiSE, Microsoft Research Typing, Analysis and Verification of Heap-Manipulating Programs Dagstuhl, Germany 20 July 2009."— Presentation transcript:

1 K. Rustan M. Leino RiSE, Microsoft Research Typing, Analysis and Verification of Heap-Manipulating Programs Dagstuhl, Germany 20 July 2009

2 Invariants Describes what holds of an object in its steady state When does an invariant hold? Frames Describes what is being modified or read Goals: Flexibility Conciseness

3 Ownership Various type systems JML Spec# Dynamic frames Kassios VeriCool Dafny Permissions, capabilities Boyland et al. Separation logic Chalice

4 .gigs.gt.gigs.gt.Level.Level Play() Strum() r g :RockBand :Guitar Invariants: 0 ≤ gigs 7 ≤ gt.Level Invariants: 0 ≤ gigs 7 ≤ gt.Level

5 Object invariant declarations Object state: Mutable Valid Consistent Committed Ownership System of owners, rep objects, and peers Enforced in logic modifies clauses say what fields of mutable and consistent objects are modified :Rock Band :Guitar:Guitar :GtString:GtString:GtString:GtString mutable consistent committed

6 Sets Functions Ghost state Style of specification Valid() – describes steady state footprint – set of objects in the aggregate (cf. valid/state paradigm in ESC/Modula-3)

7 Permissions guide what can be read and written Predicates and functions Valid *) language designed for concurrency

8 Spec# + Intuitive declarations naturally capture common situations; Readonly, frozen - Hard to break out of methodology Dafny + Simple language; Flexible - Verbose; Extension to concurrency? Chalice + Flexible - Simulatenous, different abstraction levels?; Mental overhead

9 Dafny, Chalice, Boogie available as open source: http://boogie.codeplex.com http://boogie.codeplex.com Spec# available in binary form: http://research.microsoft.com/specsharp http://research.microsoft.com/specsharp and soon also available as open source under academic license: http://specsharp.codeplex.com http://specsharp.codeplex.com

10 Spec# Vision paper (CASSIS), 2004 Spec# methodology (nee Boogie methodology), 2004 ff. Retrospective paper, 2009 Dafny Model and tutorial (Marktoberdorf), 2008 Chalice Model (ESOP), 2009 Tutorial (FOSAD), 2009 Boogie Boogie 1 architecture paper (FMCO), 2005 Boogie 2 type system and logic, 2009 Boogie 2 language reference manual, 2008 http://research.microsoft.com/~leino/papers.html

11 Spec#Spec# C with HAVOC specifications DafnyDafny C with VCC specifications ChaliceChalice Z3Z3SimplifySimplify SMT Lib BoogieBoogie Isabelle/ HOL


Download ppt "K. Rustan M. Leino RiSE, Microsoft Research Typing, Analysis and Verification of Heap-Manipulating Programs Dagstuhl, Germany 20 July 2009."

Similar presentations


Ads by Google