The use of transformations to implement an algorithm

  • Judy A. Townley
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 137)


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.


Transformation Rule Finite Automaton Input Symbol Integer Array Concrete Version 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Brown 81]
    Brown, D. W. The solution of difference equations describing array manipulation. Ph.D. Th., Harvard University, June 1981.Google Scholar
  2. [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
  3. [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
  4. [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
  5. [Conrad 76]
    Conrad, William R. Rewrite User's Guide. Harvard University, Center for Research in Computing Technology, August 1976.Google Scholar
  6. [ECL 74]
    ECL Programmer's Manual, Harvard University, Center for Research in Computing Technology, 1974.Google Scholar
  7. [Gries 73]
    Gries, David. Describing an Algorithm by Hopcroft. Acta Informatica 2 (1973), 97–109.Google Scholar
  8. [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
  9. [Liskov 78]
    Liskov, B. H. CLU Reference Manual. Massachusetts Institute of Technology, 1978.Google Scholar
  10. [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
  11. [Townley 81]
    Townley, J. A. PDS User's Manual. Harvard University, Center for Research in Computing Technology, 1981.Google Scholar
  12. [Wulf 74]
    Wulf, William A. ALPHARD: toward a language to support structured programs. Computer Science Department, Carnegie-Mellon University, April 1974.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • Judy A. Townley
    • 1
  1. 1.Center for Research in Computing TechnologyHarvard UniversityCambridge

Personalised recommendations