Program Abstraction and Instantiation

Nachum Dershowitz*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

12 Scopus citations

Abstract

Our goal is to develop formal methods for abstracting a given set of programs into a program schemaand for instantiating a given schema to satisfy concrete specifications. Abstraction and instantiationare two important phases in software development which allow programmers to apply knowledgelearned in the solutions of past problems when faced with new situations. For example, from twoprograms using a linear (or binary) search technique, an abstract schema can be derived that embodiesthe shared idea and that can be instantiated to solve similar new problems. Along similar lines, thedevelopment and application of program transformations are considered. We suggest the formulation of analogies as a basic tool in program abstraction. An analogy is firstsought between the specifications of the given programs; this yields an abstract specification thatmay be instantiated to any of the given concrete specifications. The analogy is then used as a basisfor transforming the existing programs into an abstract schema that represents the embeddedtechnique, with the invariant assertions and correctness proofs of the given programs helping toverify and complete the analogy. A given concrete specification of a new problem may then becompared with the abstract specification of the schema to suggest an instantiation of the schemathat yields a correct program.

Original languageEnglish
Pages (from-to)446-477
Number of pages32
JournalACM Transactions on Programming Languages and Systems
Volume7
Issue number3
DOIs
StatePublished - 1 Jul 1985
Externally publishedYes

Keywords

  • Abstraction
  • analogy
  • instantiation
  • program schemata

Fingerprint

Dive into the research topics of 'Program Abstraction and Instantiation'. Together they form a unique fingerprint.

Cite this