Special transformation techniques

  • H. Wössner
  • P. Pepper
  • H. Partsch
  • F. L. Bauer
III. Program Development By Transformation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 69)


There are certain simple types of recursion allowing to be transformed immediately into usual iterative language constructs. On the other hand there are also routines which can only be implemented in full generality by using a stack mechanism. One of the great advantages of methods for program development is the individual and thus adequate treatment of routines — especially of recursive ones — by means of a repertory of transformation techniques. Some of the techniques based on the fundamental method of function inversion are presented in this paper.


Transformation Rule Recursive Call Detailed Form Original Parameter Return Point 
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. /Auslander, Strong 78/.
    M.A. Auslander, H.R. Strong: Systematic Recursion Removal. Comm. ACM 21, 127–134 (1978)Google Scholar
  2. /Bauer et al. 78a/
    F.L. Bauer, M. Broy, W. Hesse, B. Krieg-Brückner, H. Partsch, P. Pepper, H. Wössner: Towards a Wide Spectrum Language to Support Program Specification and Program Development. SIG-PLAN Notices 13 (12), 15–24 (1978). Also this volumeGoogle Scholar
  3. /Bauer et al. 78b/
    F.L. Bauer, M. Broy, H. Partsch, P. Pepper, H. Wössner: Systematics of Transformation Rules. Technische Universität München, Institut für Informatik, Interner Bericht, Dec. 1978. Also this volumeGoogle Scholar
  4. /Bird 77/.
    R.S. Bird: Notes on Recursion Elimination. Comm. ACM 20, 434–439 (1977)Google Scholar
  5. /Cooper 66/.
    D.C. Cooper: The Equivalence of Certain Computations. Comp. J. 9, 45–52 (1966)Google Scholar
  6. /Darlington, Burstall 76/.
    J. Darlington, R.M. Burstall: A System which Automatically Improves Programs. Acta Informatica 6, 41–60 (1976)Google Scholar
  7. /Dijkstra 73/.
    E.W. Dijkstra: A Simple Axiomatic Basis for Programming Language Constructs. Report EWD 372, Technological University Eindhoven, 1973. Also Marktoberdorf Summer School 1973Google Scholar
  8. /Knuth 74/.
    D.E. Knuth: Structured Programming with goto Statements. Comp. Surveys 6, 261–301 (1974)Google Scholar
  9. /Morris 68/.
    J.H. Morris: Lambda-calculus models of programming. Ph. D. Thesis, Project MAC, MIT, MAC-TR-57, Dec. 1968Google Scholar
  10. /Partsch, Broy 78/.
    H. Partsch, M. Broy: Examples for Change of Types and Object Structures. This volumeGoogle Scholar
  11. /Partsch, Pepper 76/.
    H. Partsch, P. Pepper: A Family of Rules for Recursion Removal Related to the Towers of Hanoi Problem. Technische Universität München, Institut für Informatik, Rep. No. 7612, 1976. Also Inf. Proc. Letters 5, 174–177 (1976)Google Scholar
  12. /Paterson, Hewitt 70/.
    M.S. Paterson, C.E. Hewitt: Comparative Schematology. In: Record of the Project MAC Conf. on Concurrent Systems and Parallel Computation, New York: ACM 1970, 119–127Google Scholar
  13. /Pepper 78/.
    P. Pepper: A Study on Transformational Semantics. Dissertation, Munich 1978. Also this volumeGoogle Scholar
  14. /Pepper et al. 78/
    P. Pepper, H. Partsch, H. Wössner, F.L. Bauer: A Transformational Approach to Programming. In: B. Robinet (ed.): Program Transformations. Proc. of the 3rd International Symposium on Programming, March 28–30, 1978, Paris: Dunod 1978Google Scholar
  15. /Wirth 71/.
    N. Wirth: The Programming Language Pascal. Acta Informatica 1, 35–63 (1971)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1979

Authors and Affiliations

  • H. Wössner
    • 1
  • P. Pepper
    • 1
  • H. Partsch
    • 1
  • F. L. Bauer
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenMünchen 2

Personalised recommendations