Parameter passing commutes with implementation of parameterized data types

  • H. Ehrig
  • H. -J. Kreowski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 140)


In this paper we introduce the notion of implementations of parameterized data types generalizing our algebraic implementation concept of actual types as studied in earlier papers.

A typical example is the implementation of binary trees bintree(data), by strings with brackets bracketstring(data), where data is the common formal parameter part of both parameterized specificitions. Parameter passing means to replace the formal parameter data by an actual parameter like integers int leading to bintree(int) and bracketstring(int) respectively. The main result of this paper shows that parameter passing commutes with implementation. This means for our example that starting with a correct implementation of bintree(data) by bracketstring(data) correct parameter passing from data to int leads to a correct induced implementation of bintree (int) by bracketstring(int) where the induced implementation is an algebraic implementation of actual types as studied in our earlier papers. In other words the following diagram of parameter passing and implementations commutes:


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. /ADJ 76-78/.
    J.A. Goguen, J.W. Thatcher, E.G. Wagner, J. B. Wright: An initial algebra approach to the specification., correctness, and implementation of abstract data types, IBM Research Report RC-6487, Oct. 1976. Current Trends in Programming Methodology, IV: Data Structuring (R.T.Yeh, Ed.) Prentice Hall, New Jersey (1978), pp. 80–149Google Scholar
  2. /ADJ 78/.
    J.W. Thatcher, E.G. Wagner, J. B. Wright: Data Type Specification: parameterization and the power of specification techniques, Proc. SIGACT 10th Annual Symp. on Theory of Computing, Mai 1978, pp. 119–132Google Scholar
  3. /ADJ 80/.
    H. Ehrig,H.-J. Kreowski,J.W. Thatcher,E.G. Wagner,J. B. Wright: Parameterized data types in algebraic specifications languages (short version), Proc. 7th ICALP Nordwijkerhout, July 1980: Lect. Not. in Comp. Sci.88 (1980), pp. 157–168CrossRefGoogle Scholar
  4. /ADJ 81/.
    H. Ehrig, H.-J. Kreowski, J.W. Thatcher, E.G. Wagner, J. B. Wright: Parameter Passing in Algebraic Specification Languages, Proc. Workshop on Program Specification, Aarhus, August 1981Google Scholar
  5. /BDPPW 79/.
    Broy, M., Dosch, W., Partsch, H., Pepper, P. and Wirsing, M.: Existential quantifiers in abstract data Types, Proc. 6th ICALP, Graz, Lect. Not. in Comp. Sci. 71(1979), pp. 73–87CrossRefGoogle Scholar
  6. /BG 79-80/.
    Burstall, R.M., Goguen, J.A.: CAT, a System for the Structured Elaboration of Correct Programs from Structured Specifications, preliminary draft, 1979/1980Google Scholar
  7. /BG 80/.
    —: The Semantics of CLEAR, a Specification Language, Proc. 1979 Copenhagen Winter School on Abstract Software Specifications (1980), Lect. Not. in Comp. Sci. (1980)Google Scholar
  8. /Ehr 78/.
    Ehrich, H.-D.: On the theory of specification, implementation and parameterization of abstract data types, Research Report Dortmund 1978, Journal ACM 29,1 (1982), pp. 206–227CrossRefGoogle Scholar
  9. /Ehr 81/.
    Ehrig, H.: Algebraic Theory of Parameterized Specifications with Requirements, Proc. 6th CAAP, Genova 81, Lect. Not. in Comp. Sci. 112 (1981), pp. 1–24CrossRefGoogle Scholar
  10. /EF 81/.
    Ehrig, H., Fey, W.: Methodology for the specification of software systems: From requirement specifications to algebraic design specifications, Proc. GI 81, München, Informatik-Fachberichte 50, 1981, pp. 255–269CrossRefGoogle Scholar
  11. /EFK 80/.
    Ehrig, H., Fey, W., Kreowski, H.-J.: Some Examples of Algebraic Specifications and Implementations: Part 1, Techn. University Berlin, Report No. 80-31, 1980Google Scholar
  12. /EKP 78/.
    Ehrig, H., Kreowski, H.-J., Padawitz, P.: Stepwise specification and implementation of abstract data types: Techn. University Berlin, Report,Nov. 1977, Proc. 5th ICALP, Udine, July 1978: Lect. Not. in Comp. Sci. 62 (1978), pp. 205–226CrossRefGoogle Scholar
  13. /EKP 80/.
    —: Algebraic Implementation of Abstract Data Types: Concept Syntax, Semantics, Correctness: Proc. 7th ICALP, Nordwijkerhout, July 1980, Lect. Not. in Comp. Sci. 85, (1980), pp. 142–156CrossRefGoogle Scholar
  14. /EKMP 80/.
    Ehrig, H., Kreowski, H.-J., Mahr, B., Padawitz, P.: Algebraic Implementations of Abstract Data Types, to appear in Theoret. Comp. ScienceGoogle Scholar
  15. /Flo 81/.
    Floyd, Ch., Kopetz, H. (eds.):Software Engineering — Entwurf und Spezifikation, Proc. 2nd German Chapter of the ACM-Meeting, Teubner-Verlag, Stuttgart 1981Google Scholar
  16. /Gan 81/.
    Ganzinger, H.: Parameterized specifications: Parameter Passing and Optimizing Implementation, Techn. Report, TU München, August 1981Google Scholar
  17. /Gut 76/.
    Guttag, J.V.: Abstract data types and development of data structures; supplement to Proc. Conf. on Data Abstraction, Definition, and Structure, SIGPLAN Notices 8, March 1976Google Scholar
  18. /HS 73/.
    Herrlich, H., Strecker, G.: Category Theory, Allyn and Bacon, Rockleigh 1973zbMATHGoogle Scholar
  19. /Hup 81/.
    Hupbach, U.L.: Abstract Implementation and Parameter Substitution, submitted to 3rd Hungarian Comp. Sci. Conf., Budapest 1981Google Scholar
  20. /ML 71/.
    MacLane, S.: Categories for the Working Mathematician; Springer Verlag, New York/Heidelberg/Berlin 1971zbMATHGoogle Scholar
  21. /Rei 80/.
    Reichel, H.: Initially Restricting Algebraic Theories, Proc. MFCS'80, Rydzyna, Sept. 1980, Lect. Not. in Comp. Sci. 88 (1980), pp. 504–514CrossRefGoogle Scholar
  22. /SW 82/.
    Sanella, D., Wirsing, M.: Implementation of Parameterized Specifications, 1982, this volumeGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • H. Ehrig
    • 1
  • H. -J. Kreowski
    • 1
  1. 1.Fachbereich InformatikTechnische Universität BerlinBerlin 12Germany

Personalised recommendations