The Verification Corner - Specifications in Action with Spec#
- Posted: Mar 01, 2010 at 7:44 AM
- 23,791 Views
- 2 Comments
Download
How do I download the videos?
- To download, right click the file type you would like and pick “Save target as…” or “Save link as…”
Why should I download videos from Channel9?
- It's an easy way to save the videos you like locally.
- You can save the videos in order to watch them offline.
- If all you want is to hear the audio, you can download the MP3!
Which version should I choose?
- If you want to view the video on your PC, Xbox or Media Center, download the High Quality WMV file (this is the highest quality version we have available).
- If you'd like a lower bitrate version, to reduce the download time or cost, then choose the Medium Quality WMV file.
- If you have a Zune, WP7, iPhone, iPad, or iPod device, choose the low or medium MP4 file.
- If you just want to hear the audio of the video, choose the MP3 file.
Right click “Save as…”
- High Quality WMV (PC, Xbox, MCE)
- MP3 (Audio only)
- MP4 (iPod, Zune HD)
- Mid Quality WMV (Lo-band, Mobile)
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.
- Try Spec# in your web browser at http://rise4fun/specsharp!
- Find past and future episodes of the The Verification Corner!
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 Closed
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
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