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.
- 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.