Animating Z Using Logic Programming Techniques
Abstract:
One method for detecting errors in a formal specification is animation. It is complementary to theorem proving and can be highly cost-effective, particularly earlier in development. In my talk I'll discuss animation of the specification notation Z. I'll argue that: 1. it is desirable to perform analysis prior to execution; 2. logic programming languages are an attractive target for animations of Z; 3. mode analysis can help bridge the gap between Z and Mercury. The details of a mode analysis algorithm will be presented. Animation? ffl Automatically deriving prototypes from specifications. ffl Exploration: more general than execution. ffl Iterative construction of mathematical models ffl Early feedback-- useful for verification ffl Prototype can be demonstrated-- useful for validation ffl More accessable to developers (lightweight) ffl Complementary to theorem proving 1 Our approach 1. Specify in a notation with semantics in first order set theory; 2. Translate specification into a logic program; 3. Execute logic program to explore properties of the specification. 2 Why Z? ("Zed", not "Zee") ffl Challenging ffl Well known ffl Widely used Why Mercury? ffl Logic is close to Z ffl Sound ffl Expresses control through separate annotations ffl Efficient 3 System Structure
Citations
| 29 | Software development: Two approaches to animation of Z specifications using Prolog – West, Eaglestone - 1992 |
| 26 | Towards correct executable semantics for Z – Breuer, Bowen - 1994 |
| 12 | EZ: A system for automatic prototyping of Z specifications – Doma, Nicholl - 1991 |
| 7 | Animating Z: Interactivity, transparency and equivalence – Utting - 1994 |
| 4 | FunZ: An Intermediate Specification Language – Sherrell, Carver - 1995 |
| 4 | Animation is approximation – West - 1996 |
| 2 | From Z Specifications to Haskell Programs: A Three-Pronged Approach – Goodman - 1995 |

