Using middle-out reasoning to transform naïve programs into tail-recursive ones:

Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using t...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Hesketh, Jane (VerfasserIn), Bundy, Alan (VerfasserIn), Smaill, Alan (VerfasserIn)
Format: Buch
Sprache:English
Veröffentlicht: Edinburgh 1990
Schriftenreihe:University <Edinburgh> / Department of Artificial Intelligence: DAI research paper 512
Schlagworte:
Zusammenfassung:Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using the proofs as programs technique. This requires the specification to be proved realisable in a constructive logic. Restrictions on the form of the proof ensure that the synthesised program is tail-recursive. The automatic search for a synthesis proof is controlled by proof plans, which are descriptions of the high-level structure of proofs of this kind
We have extended the known proof plans for inductive proofs by adding a new form of generalisation and by making greater use of middle-out reasoning. In middle-out reasoning we postpone decisions in the early part of the proof by the use of meta-variables which are instantiated, by unification, during later parts of the proof. Higher order unification is required, since these meta-variables can be higher order.
Beschreibung:13 S.