Skip to main content
Log in

Encoding, Decoding and Data Refinement

  • Original Paper
  • Published:
Formal Aspects of Computing

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Author information

Authors and Affiliations

Authors

Additional information

Received May 1999 / Accepted in revised form November 2000

Rights and permissions

Reprints and permissions

About this article

Cite this article

Back, RJ., von Wright, J. Encoding, Decoding and Data Refinement. Form Aspects Comput 12, 313–349 (2000). https://doi.org/10.1007/s001650070008

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s001650070008

Navigation