The Verification Corner - Specifications in Action with Spec#
- Posted: Mar 01, 2010 at 7:44 AM
- 24,408 Views
- 2 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
In this episode of The Verification Corner, Rustan Leino gives a demonstration of specifications in action. He builds a program that chunks strings into pieces, i.e. a chunker, in Spec#. During the demo, he shows the verifier, the developer, and the specifications fit together in the development cycle. Rustan Leino is a Principal Researcher in the Research in Software Engineering (RiSE) group at Microsoft Research.
The Verification Corner is a show on Software Verification Techniques and Tools. The show is produced by the Research in Software Engineering team (RiSE) , which coordinates Microsoft's research in Software Engineering in Redmond, USA.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
That's a pretty impressive example. It makes clear how many possible bugs specifications can catch: a lot. It also makes me quite envious of Spec#. Hopefully these features will be incorporated into C# at some point in time; we do have Code Contracts for .Net but this syntax is so much better. It would also be very nice to be able to assign invariants to primitive type aliases, e.g.
Maybe there's not that many use-cases for that feature though.
Non-nullness annotations is another very hot feature.
Also, since LINQ to Objects uses Dispose (as in IEnumerator extends IDisposable; the sole purpose of which is IO cleanup) can we then consider LINQ to Objects as impure and therefore not suitable for specifications?
Very nice, but I'd like to see the full postcondition for NextChunk. Perhaps, in your next episode, you could give an example of a postcondition containing, say, a quantified expression.
Remove this comment
Remove this thread
close