From Predicates to Programs: The Semantics of a Method Language

  • Authors:
  • David Faitelson;James Welch;Jim Davies

  • Affiliations:
  • Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD UK;Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD UK;Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD UK

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper explains how a declarative method language, based upon the formal notations of Z and B, can be used as a basis for automatic code generation. The language is used to describe the intended effect of operations, or methods, upon the components of an object model; each method is defined by a pair of predicates: a precondition, and a post-condition. Following the automatic incorporation of model invariants, including those arising from class associations, these predicates are extended-again, automatically-to address issues of consistency, definition, and dependency, before being translated into imperative programs. The result is a formal method for transforming object models into complete, working systems.