Program development by transformation and refinement

  • Stefan Jähnichen
  • Fatima Ali Hussain
  • Matthias Weber
Program Reuse And Transformations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 244)


The paper describes programming as a sequence of transitions. A specification is thus systematically transformed into an executable program. It is further argued that the transformational approach will only become widely accepted if the derivation process is formally described and can thus be partially automated. A calculus for the description is then introduced and demonstrated using the fold/unfold system as introduced by Darlington.


Abstract Data Type Executable Program Predicate Transformation Stepwise Refinement Large Data Structure 
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.

6 References

  1. [Arsac 79]
    Arsac, J., Syntactic Source to Source Program Transforms and Program Manipulations, CACM Vol. 22, No. 1, January 1979, pp. 43–53.Google Scholar
  2. [Bauer 85]
    Bauer et al., The Muenchen Project CIP, Vol. 1: The Wide Spectrum Language, CIP-L, LNCS 183, Springer-Verlag, 1985.Google Scholar
  3. [Burstall 77]
    Burstall, R. M. and Darlington, J., A Transformation System for Developing Recursive Programs. Journal of the Association for Computing Machinery, Vol.24, No. 1, January 1977, pp. 44–67.Google Scholar
  4. [Darlington 80]
    Darlington, J., Synthesis of Implementations for Abstract Data Types, Rep. 80/4, Dep. of Computing, Imperial College London, 1980.Google Scholar
  5. [Darlington 81]
    Darlington, J., The Structured Description of Algorithm Derivations, Algorithmic Languages, de Bakker/van Vliet(eds.) (c), North-Holland Publishing Company, 1981,pp. 221–250.Google Scholar
  6. [Dewar 82]
    Dewar, R. B. K. et al., Transformational Derivation of a Garbage Collection Algorithm, ACM TOPLAS, Vol.4, Oct. 82.Google Scholar
  7. [Feather 85]
    Feather, Martin S., A Survey and Classification of some Program Transformation Approaches and Techniques, USC / Information Sciences Institute, September 1985.Google Scholar
  8. [Gries 81]
    Gries, D., The Science of Programming, Springer-Verlag, 1981.Google Scholar
  9. [Groote 86]
    Groote, P. de, Tentative Definition of a Subset of Sintzoff's Design Calculus, Universite' Catholique de Louvain Unite d'Informatique, T3.deva, 1986.Google Scholar
  10. [Horsch 85]
    Horsch, A., Moeller, B., Partsch, H., Paukner, O. and Pepper, P., The Munich Project CIP, Volume II: thr Program Transformation System CIP-S, Technische Universitaet Muenchen, Institut fuer Informatik Report TUM-I8509, June 1985.Google Scholar
  11. [Martin-Löf 85]
    Martin-Löf, P., An Intuitionistic Theory of Types: Predicative Part, in: Logic Colloquium 1973, Rose and Shepherdson (Eds), North-Holland, 1975, pp. 73–118.Google Scholar
  12. [Martin-Löf 85]
    Martin-Löf, P., Constructive Mathematics and Computer Programming, in: Mathematical Logic and Programming Languages, Hoare and Shepherdson (Eds), Prentice-Hall, 1985, pp.167–184.Google Scholar
  13. [Mostow 85]
    Mostow, J., Towards Better Models Of The Design Process, The AI Magazine, Spring 1985.Google Scholar
  14. [Partsch 83]
    Partsch, H. and Steinbrueggen, R., Program Transformation Systems, ACM Computing Surveys, Vol.15(3), Sep. 1983.Google Scholar
  15. [Phillips 83]
    Phillips,J., Self-Described Programming Environments, Kestrel Institut, Palo Alto, [KES.U.83.1].Google Scholar
  16. [Scherlis 86]
    Scherlis, William L., Abstract Data Types, Specialization and Program Reuse, IFIP WG2.4 International Workshop on Advanced Programming Environments, Trondheim, Norway, June 16–18 1986.Google Scholar
  17. [Sintzoff 85]
    Sintzoff, M., Desiderata for a Design Calculus, UCL, T3.memo, Unite d' Informatique, June 85.Google Scholar
  18. [Sintzoff 86]
    Sintzoff, M., Playing with a Recursive Design Calculus, UCL, T3.memo. Unite de informatique,1986.Google Scholar
  19. [Smith 85]
    Smith, D.R., Top-down Synthesis of Divide-and-Conquer Algorithms, Artificial Intelligence, Vol. 27, No 1, September 1985.Google Scholar
  20. [Sowa 84]
    Sowa, J.F., Conceptual Structures — Information Processing in Mind and Machine, Addison Wesley, 1984.Google Scholar
  21. [ToolUse 86]
    ToolUse Task 3 Team, Requirements for the Definition of DEVA, Final Report Task 3.2, 1986.Google Scholar
  22. [Wirth 71]
    Wirth, N., Program Development by Stepwise Refinement, CACM 14, April 1971, pp. 221–227.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Stefan Jähnichen
    • 1
  • Fatima Ali Hussain
    • 1
  • Matthias Weber
    • 1
  1. 1.GMD Forschungsstelle an der Universität KarlsruheKarlsruheWest Germany

Personalised recommendations