Semantic approach to automatic program improvement
Item Status
Embargo End Date
Date
Authors
Darlington, John
Abstract
The programs that are easiest to write and understand are often
not the most efficient. This thesis gives methods of converting
programs of the former type to those of the latter type; this
involves converting definitions of algorithms given as recursion
equations using high level primitives into lower level flow chart
programs.
The main activities involved are recursion removal (c.f. Strong),
loop elimination, and the overwriting of shared structures. We
have concentrated on the semantics, rather than the syntax, of the
programs we are transforming and we have used techniques developed in
work done on proving the correctness of programs.
The transformations are done in a hierarchical manner and can be
regarded as compiling a program defined in a structured manner (Dijkstra)
to produce an efficient low level program that simulates it.
We describe the implementation of a system that allows the user
to specify algorithms in a simple set language and converts them to
flow chart programs in either a bitstring or list processing language.
Both of these lower languages allow the sharing of structures. The
principles are applicable to other domains and we describe how our
system can be applied more generally.
This item appears in the following Collection(s)

