Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.