The Verification Corner - Stepwise Refinement

Sign in to queue

Description

In this episode of The Verification Corner, Kuat Yessenov and Rustan Leino, Principal Researcher in the Research in Software Engineering (RiSE) group at Microsoft Research,  show how a program can be constructed by stepwise refinement.  First, a high-level description of the program is given.  Then, some more detailed pseudo-code is developed.  Finally, an efficient data-structure representation is chosen and the corresponding changes to the program are written. There are several potential advantages of this approach.  One is that it lets the programmer design the program in finer and finer levels of granularity, rather than having to write all the fine details into the program text at once.  At each level, the verification tool kicks in and checks the correctness, thus proving feedback to the programmer.  A second advantage is that the more abstract descriptions of the program stay around, in a machine readable form that makes sure they stay up-to-date.  This means a new programmer on the project can start reading the more abstract versions in order to understand the program.

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.

Embed

Download

Download this episode

The Discussion

  • User profile image
    intelman

    Zooming into the editor window, those fonts look amazing.

  • User profile image
    bryanedds

    Very great work!

    Now, just get the first step to compile while making the successive steps necessary only when justified by performance needs. I'll bet very few refinements will be needed in practice even for real time programming (assuming you have a reasonable GC algorithm unlike on the .Net Compact Framework for the Xbox 360).

  • User profile image
    Ryan

    Those fonts really are awesome, i used the .net framework to build an app for my site,
    Canvas Paintings

Add Your 2 Cents