Examples for change of types and object structures

  • H. Partsch
  • M. Broy
III. Program Development By Transformation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 69)


The abstract, algebraic definition of data types by describing their properties forms a solid formal basis for the specification of computation structures independent of their particular representations. Thus programs can be designed and developed working with objects of an abstractly defined computation structure. The choice of particular representations (implementations), the releasing of this representation to the "outer world" and the consequences on further program development are demonstrated with examples of joint refinement.


Computation Structure Function Symbol Congruence Relation Object Structure Program Transformation 
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. [Bauer 78]
    F.L. Bauer: Design of a Programming Language for a Program Transformation System. This volume.Google Scholar
  2. [Bauer et al. 77a]
    F.L. Bauer, M. Broy, R. Gnatz, W. Hesse, B. Krieg-Brückner: Notes on the Project CIP: Towards a Wide Spectrum Language to Support Program Development by Transformations. Technische Universität München, Institut für Informatik, TUM-INFO-7722, 1977Google Scholar
  3. [Bauer et al. 77b]
    F. L. Bauer, H. Partsch, P. Pepper, H. Wössner: Notes on the Project CIP: Outline of a Transformation System. Technische Universität München, Institut für Informatik, TUM-INFO-7729, 1977Google Scholar
  4. [Bauer et al. 78]
    F.L. Bauer, M. Broy, R. Gnatz, 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. SIGPLAN Notices 13 (12), 15–24 (1978). This volumeGoogle Scholar
  5. [Birkhoff, Lipson 70]
    G. Birkhoff, J.D. Lipson: Heterogeneous Algebras. J. of Combinatorial Theory 8, 115–133 (1970)Google Scholar
  6. [Burstall, Goguen 77]
    R.M. Burstall, J.A. Goguen: Putting Theories together to Make Specifications. Proceedings of the Int. Joint Conf. on Artificial Intelligence 1977Google Scholar
  7. [Correll 78]
    C.H. Correll: Proving Programs Correct through Refinement. Acta Informatica 9, 121–132 (1978)Google Scholar
  8. [Dahl et al. 68]
    O.-J. Dahl, B. Myhrhaug, K. Nygaard: SIMULA 67 Common Base Language. Norwegian Computing Center, Oslo, May 1968Google Scholar
  9. [Dijkstra 76]
    E.W. Dijkstra: A Discipline of Programming. Englewood Cliffs, N.J.: Prentice-Hall, 1976Google Scholar
  10. [Ehrig et al. 78]
    H. Ehrig, H.J. Kreowski, P. Padawitz: Stepwise specification and implementation of abstract data types. In: G. Ausiello, C. Böhm (eds): Automata, Languages and Programming. Proc. 5th Colloquium, Udine, July 1978. Springer Lecture Notes on Computer Science 62 Google Scholar
  11. [Goguen et al. 77]
    J.A. Goguen, J.W. Thatcher, E.G. Wagner: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. In: R.T. Yeh (ed.): Current trends in programming methodology, Vol. 3, Data Structuring, N.J.: Prentice Hall, 1978Google Scholar
  12. [Guttag 75]
    J.V. Guttag: The Specification and Application to Programming of Abstract Data Types. Ph. D. Th., Univ. of Toronto, Dept. Comp. Sci., Rep. CSRG-59, 1975Google Scholar
  13. [Guttag et al. 76a]
    J.V. Guttag, E. Horowitz, D.R. Musser: Abstract Data Types and Software Validation. USC/Information Sciences Institute, RR-76-48 (1976)Google Scholar
  14. [Guttag et al. 76b]
    J.V. Guttag, E. Horowitz, D.R. Musser: The Design of Data Type Specifications. USC/Information Sciences Institute, RR-76-49 (1976)Google Scholar
  15. [Guttag, Horning 78]
    J.V. Guttag, J.J. Horning: The Algebraic Specification of Abstract Data Types. Acta Informatica 10, 27–52 (1978)Google Scholar
  16. [von Henke 75]
    F.W. von Henke: On Generating Programs from Data Types: An Approach to Automatic Programming. In: G. Huet, G. Kahn (eds.): Proving and Improving Programs. Colloques IRIA, Arc et Senans, 1–3 juillet 1975Google Scholar
  17. [Hoare 72]
    C.A.R. Hoare: Proof of Correctness of Data Representations. Acta Informatica 1: 4, 271–281 (1972)Google Scholar
  18. [Hoare 73]
    C.A.R. Hoare: Recursive Data Structures. Stanford University, A.I.Lab., Stan-CS-73-400, Oct. 1973Google Scholar
  19. [Knuth 69]
    D.E. Knuth: The Art of Computer Programming. Reading, Mass: Addison-Wesley, 1969Google Scholar
  20. [Knuth, Szwarcfiter 74]
    D.E. Knuth, J.L. Szwarcfiter: A Structured Program to Generate all Topological Sorting Arrangements. Inf. Proc. Letters 2, 153–157 (1974)Google Scholar
  21. [Krieg-Brückner 78]
    B. Krieg-Brückner: Concrete and Abstract Specification, Modularization and Program Development by Transformation. Technische Universität München, Institut für Informatik, TUM-INFO-7805, 1978Google Scholar
  22. [Linden 78]
    Th. A. Linden: Specifying Abstract Data Types by Restriction. ACM SIGSOFT, Software Engineering Notes 3:2, 7–13 (1978)Google Scholar
  23. [Liskov, Zilles 74]
    B. Liskov, S. Zilles: Programming with Abstract Data Types. Proc. ACM SIGPLAN Conf. on Very High Level Languages, SIGPLAN Notices 9: 4, 50–59 (1974)Google Scholar
  24. [Liskov, Zilles 75]
    B. Liskov, S. Zilles: Specification Techniques for Data Abstractions. IEEE Trans. on Software Eng. 1: 1, 7–18 (1975)Google Scholar
  25. [Majster 77]
    M. Majster: Limits of the "Algebraic" Specification of Abstract Data Types. SIGPLAN Notices 12: 10, 37–41 (1977)Google Scholar
  26. [McCarthy 63]
    J. McCarthy: A Basis for a Mathematical Theory of Computation. In: P. Braffort, D. Hirschberg (eds.): Computer Programming and Formal Systems. Amsterdam: North-Holland, 1963Google Scholar
  27. [Perlis, Thornton 60]
    A.J. Perlis, C. Thornton: Symbol Manipulation by Threaded Lists. Comm. ACM 3, 195–204 (1960)Google Scholar
  28. [Scott 76]
    D. Scott: Data Types as Lattices. SIAM J. of Computing 5, 522–587 (1976)Google Scholar
  29. [Wulf 74]
    W. Wulf: ALPHARD: Towards a Language to Support Structured Programs. Carnegie-Mellon Univ., Pittsburgh, Dept. of Comp. Sc., Internal Report, April 1974Google Scholar
  30. [Zilles 74]
    S. Zilles: Algebraic Specification of Data Types. Computation Structures Group Memo 119, MIT, Combridge, Mass.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1979

Authors and Affiliations

  • H. Partsch
    • 1
  • M. Broy
    • 1
  1. 1.Institut für Informatik der Technischen UniversitätMünchen 2

Personalised recommendations