Affiliation:
1. Univ. of Illinois, Urbana
Abstract
Our goal is to develop formal methods for abstracting a given set of programs into a program schema
and for instantiating a given schema to satisfy concrete specifications. Abstraction and instantiation
are two important phases in software development which allow programmers to apply knowledge
learned in the solutions of past problems when faced with new situations. For example, from two
programs using a linear (or binary) search technique, an abstract schema can be derived that embodies
the shared idea and that can be instantiated to solve similar new problems. Along similar lines, the
development and application of program transformations are considered.
We suggest the formulation of analogies as a basic tool in program abstraction. An analogy is first
sought between the specifications of the given programs; this yields an abstract specification that
may be instantiated to any of the given concrete specifications. The analogy is then used as a basis
for transforming the existing programs into an abstract schema that represents the embedded
technique, with the invariant assertions and correctness proofs of the given programs helping to
verify and complete the analogy. A given concrete specification of a new problem may then be
compared with the abstract specification of the schema to suggest an instantiation of the schema
that yields a correct program.
Publisher
Association for Computing Machinery (ACM)
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Nanofertilizers: as smart nanoformulations in the agriculture industry;The Impact of Nanoparticles on Agriculture and Soil;2023
2. The Specification of Agent Behavior by Ordinary People: A Case Study;The Semantic Web – ISWC 2004;2004
3. Task Analysis and Design Plans in Formal Specification Design;International Journal of Software Engineering and Knowledge Engineering;1998-06
4. Higher-order rewriting and partial evaluation;Rewriting Techniques and Applications;1998
5. Reusing analogous components;IEEE Transactions on Knowledge and Data Engineering;1997