From specifications to machine code: Program construction through formal reasoning

  • Authors:
  • Friedrich L. Bauer

  • Affiliations:
  • -

  • Venue:
  • ICSE '82 Proceedings of the 6th international conference on Software engineering
  • Year:
  • 1982

Quantified Score

Hi-index 0.00

Visualization

Abstract

Due to modern technology, software will to an increasing extent be frozen into hardware. This is just one example for situations where bugs in the software are absolutely intolerable. Therefore programming must soon become a safe process of program Construction; that is, it has to be organized as a sequence of steps of rational reasoning. Starting from an elaborate formal problem specification using elements of predicate logic, set theory and primitives from some algebras, the application of formal rules leads to algorithmic versions and finally to programs oriented towards the instruction repertoire of particular concrete machines. A genuine program construction process needs strict formalization throughout. All versions including the specifications can conveniently be represented by one programming language comprising the complete spectrum of descriptive, applicative and procedural styles. Such a language includes the concept of nondeterminism, which makes the development process transparent and extremely flexible, and it is to be interpreted by some model of the underlying abstract data types. The use of formally proved transformation rules guarantees this correctness. In addition, the transformational approach is universal in the sense that the collection of rules can be adapted to the application in question: Although initially envisaged and mainly used now for the construction of software for classical sequential stored-program machines, the approach can be extended to other computational models corresponding to the often cited innovative hardware architectures.