The use of transformations to implement an algorithm
Some years ago we developed a package for creating and applying transformation rules [Conrad 76]. The facilities in the package provide a way to transform user-defined language extensions into constructs in the base language EL1. We have used the facilities — and that approach to program refinement — extensively. Our experience led us to develop an integrated programming environment, the Harvard PDS, to support the methodology. In this paper we describe the use of transformation rules to refine the high-level specification of an algorithm. We use transforms to specify the meanings of high-level constructs and to encode special-purpose optimizations. We briefly discuss the PDS and its support for the methodology.
KeywordsTransformation Rule Finite Automaton Input Symbol Integer Array Concrete Version
Unable to display preview. Download preview PDF.
- [Brown 81]Brown, D. W. The solution of difference equations describing array manipulation. Ph.D. Th., Harvard University, June 1981.Google Scholar
- [Cheatham 75]Cheatham, T. E., Jr., and Townley, J. A. Implementing an algorithm of Hopcroft described by Gries. Center for Research in Computing Technology, Harvard University, 1975.Google Scholar
- [Cheatham 79]Cheatham, T. E., Jr., Holloway, G. H., Townley, J. A. Symbolic evaluation and the analysis of programs. IEEE Trans. Software Engineering SE-5, 4 (1979), 402–417.Google Scholar
- [Cheatham 81]Cheatham, T. E., Jr. Overview of the Harvard Program Development Systems. In Hunke, H, editor, Software Engineering Environments. North-Holland Publishing Co, 1981.Google Scholar
- [Conrad 76]Conrad, William R. Rewrite User's Guide. Harvard University, Center for Research in Computing Technology, August 1976.Google Scholar
- [ECL 74]ECL Programmer's Manual, Harvard University, Center for Research in Computing Technology, 1974.Google Scholar
- [Gries 73]Gries, David. Describing an Algorithm by Hopcroft. Acta Informatica 2 (1973), 97–109.Google Scholar
- [Hopcroft 71]Hopcroft, J. An n log n algorithm for minimizing states in a finite automaton. In Theory of Machines and Computation, Academic Press, New York, 1971, pp. 189–196.Google Scholar
- [Liskov 78]Liskov, B. H. CLU Reference Manual. Massachusetts Institute of Technology, 1978.Google Scholar
- [Ploedereder 80]Ploedereder, E. O. A semantic model for the analysis and verification of programs in general, higher-level languages. Ph.D. Th., Harvard University, 1980.Google Scholar
- [Townley 81]Townley, J. A. PDS User's Manual. Harvard University, Center for Research in Computing Technology, 1981.Google Scholar
- [Wulf 74]Wulf, William A. ALPHARD: toward a language to support structured programs. Computer Science Department, Carnegie-Mellon University, April 1974.Google Scholar