Advertisement

Formal Aspects of Computing

, Volume 12, Issue 5, pp 313–349 | Cite as

Encoding, Decoding and Data Refinement

  • Ralph-Johan Back
  • Joakim von Wright
Original Paper

Abstract.

Data refinement is the systematic replacement of a data structure with another one in program development. Data refinement between program statements can on an abstract level be described as a commutativity property where the abstraction relationship between the data structures involved is represented by an abstract statement (a decoding). We generalise the traditional notion of data refinement by defining an encoding operator that describes the least (most abstract) data refinement with respect to a given abstraction. We investigate the categorical and algebraic properties of encoding and describe a number of special cases, which include traditional notions of data refinement. The dual operator of encoding is decoding, which we investigate and give an intuitive interpretation to. Finally we show a number of applications of encoding and decoding.

Keywords: Abstraction; Data refinement; Galois connection; Predicate transformer semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© BCS 2000

Authors and Affiliations

  • Ralph-Johan Back
    • 1
  • Joakim von Wright
    • 1
  1. 1.Åbo Akademi University and Turku Centre for Computer Science, Turku, FinlandFI

Personalised recommendations