Parameter passing in algebraic specification languages

  • Hartmut Ehrig
  • Hans-Jörg Kreowski
  • James Thatcher
  • Eric Wagner
  • Jesse Wright
Chapter 5 Submitted Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 134)


In this paper we study the semantics of the parameter passing mechanism in algebraic specification languages. More precisely, this problem is studied for parameterized data types and parameterized specifications. The given results include the extension of the model functor (which is useful for correctness proofs) and the semantic properties of the result of inserting actual parameters into parameterized specifications. In particular, actual parameters can be parameterized and the result is nested parameterized specification. Correctness of an applied (matrix (int)) or a nested (bintree (string ())) parameterized specification is shown given correctness of the parts. The formal theory in this paper is restricted to the basic algebraic case where only equations are allowed in the parameter declaration and parameter passing is given by specification morphisms. But we also give the main ideas of a corresponding theory with requirements where we allow different kinds of restrictions in the parameter declaration.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9. Bibliography

  1. /ADJ 75/.
    J.A. Goguen, J.W. Thatcher, E.G. Wagner, J.B. Wright: Abstract data types as initial algebras and correctness of data representations; Proc. Conf. on Computer Graphics, Pattern Recognition and Data Structure, May 75, pp. 89–93Google Scholar
  2. /ADJ 76/.
    J.W. Thatcher, E.G. Wagner, J.B. Wright: Specification of abstract data types using conditional axioms, IBM Research Report RC-6214, Sept. 1976Google Scholar
  3. /ADJ 76–78/.
    J.A. Goguen, J.W. Thatcher, E.G. Wagner: An initial algebra appraoch 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
  4. /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, May 1978, pp. 119–132Google Scholar
  5. /ADJ 80/.
    H. Ehrig, H.-J. Kreowski, J.W. Thatcher, E.G. Wagner, J.B. Wright: Parameterized data types in algebraic specification languages (short version), Proc. 7th ICALP Nordwijkerhout, July 1980: Lect. Not. in Comp. Sci. 85 (1980), pp. 157–168Google Scholar
  6. /AM 75/.
    Arbib, M.A., Manes, E.G.: Arrows, Structures and Functors: The categorical imperative, Academic Press, New York, 1975Google Scholar
  7. /BG 77/.
    Burstall, R.M., Goguen, J.A.: Putting Theories together to make Specifications, Proc. 1977 IJCAI, MIT, Cambridge, MA, Aug. 1977Google Scholar
  8. /BG 79/.
    —: Semantics of CLEAR, Working Note — Draft Version, Dept. of Artificial Intelligence, Edinburgh University, Jan. 1979Google Scholar
  9. /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
  10. /Coh 65/.
    Cohn, P.M.: Universal Algebra, Harper and Row, New York, 1965Google Scholar
  11. /Ehr 78/.
    Ehrich, H.-D.: On the theory of specification, implementation and parameterization of abstract data types, Research Report Dortmund 1978Google Scholar
  12. /EL 79/.
    Ehrich, H.-D., Lohberger, V.G.: Constructing Specifications of Abstract Data Types by Replacements, Proc. Int. Workshop Graph Grammars and Appl. Com. Sci. and Biology, Bad Honnef 1978, Lect. Not. in Comp. Sci. 73 (1979), pp. 180–191Google Scholar
  13. /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–24Google Scholar
  14. /EF 81/.
    Ehrig, H., Fey, W.: Methodology for the specification of software systems: From requirement specifications to algebraic design specifications, Proc. GI 81, MünchenGoogle Scholar
  15. /EK 80/.
    Ehrig, H., Kreowski, H.-J.: Kategorien und Funktoren, LV-Skript SS 1980, FB 20, TU Berlin (1980)Google Scholar
  16. /EKP 77/.
    Ehrig, H., Kreowski, H.-J., Padawitz, P.: Some remarks concerning correct specification and implementation of abstract data types: Technical University of Berlin, Report 77-13, August 1977Google Scholar
  17. /EKP 78/.
    —: Stepwise specification and implementation of abstract data types: Technical University of Berlin, Report, Nov. 1977 Proc. 5th ICALP, Udine, July 1978: Lect. Not. in Comp. Sci. 62 (1978), pp. 205–226Google Scholar
  18. /EKP 80/.
    —: Algebraic Implementation of Abstract Data Types: Concept, Syntax, Semantics, Correctness; Proc. 7th ICALP, Nordwijkerhout, July 1980, Lect. Notes in Comp. Sci. 85 (1980), pp. 142–156Google Scholar
  19. /Fey 81/.
    Fey, W.: Some Examples of Algebraic Specifications and Implementation, Part 4, Technical University of Berlin, Report No. 81-, 1981Google Scholar
  20. /Flo 81/.
    Floyd, Ch.: Proc. 2nd German Chapter of The ACM-Meeting "Software Engineering — Entwurf und Spezifikation" (editor), Teubner Verlag 1981Google Scholar
  21. /Gan 80a/.
    Ganzinger, H.: Parameterized Specifications: Parameter Passing and Implementation, version Sept. 1980, to appear in TOPLASGoogle Scholar
  22. /Gan 80b/.
    —: A final algebra semantics for parameterized specifications, draft version, UC Berkeley, November 1980Google Scholar
  23. /GT 77/.
    Goguen, J.A., Tardo, J.: OBJ-O preliminary users manual; UCLA, Los Angeles, CA., 1977Google Scholar
  24. /Gra 68/.
    Graetzer, G.: Universal Algebra, Van Nostrand, Princeton, N.J. 1968Google Scholar
  25. /Gut 75/.
    Guttag, J.V.: The specification and application to programming of abstract data types; Univ. of Toronto, Comp. Systems Research Group, Technical Report CSRG-59, Sept. 1975Google Scholar
  26. /Gut 76/.
    —: Abstract data types and the development of data structures; supplement to Proc. Conf. on Data Abstraction, Definition, and Structure, SIGPLAN Notices 8, March 1976Google Scholar
  27. /HR 81/.
    Hornung, G., Raulefs, P.: Initial and Terminal Algebra Semantics of Parameterized Abstract Data Type Specification with Inequalities, Proc. 6th CAAP, Genova 81, Lect. Not. in Comp. Sci. 112 (1981), pp. 224–237Google Scholar
  28. /HS 73/.
    Herrlich, H., Strecker, G.: Category Theory, Allyn and Bacon, Rockleigh 1973Google Scholar
  29. /Hup 81/.
    Hupbach, U.L.: Abstract Implementation and Parameter Substitution, submitted to 3rd Hungarian Comp. Sci. Conf., Budapest 1981Google Scholar
  30. /Jen 79/.
    Jenks, R.D.: MODLISP: An Introduction, Lect. Not. in Comp. Sci. 72 (1979), pp. 466–480, new version in preparationGoogle Scholar
  31. /JT 81/.
    Jenks, R.D., Trager, M.B.: A language for computer algebra, Proc. 1981 ACM Symp. on Symbolic and Algebraic Computation, August, 1981Google Scholar
  32. /Kla 80/.
    Klaeren, H.A.: On Parameterized Abstract Software Modules using Inductively Specified Operations, Research Report TH Aachen Nr. 66, (1980)Google Scholar
  33. /Kre 78/.
    Kreowski, H.-J.: Algebra für Informatiker; LV-Skript WS 78/79, FB 20, TU Berlin (1978)Google Scholar
  34. /LSAS 77/.
    Liskov, B., Snyder, A., Atkonson, R., Schaffert, C.: Abstraction Mechanisms in CLU; CACM 20, Nr. 8 (1977), pp. 564–576Google Scholar
  35. /LZ 77/.
    Liskov, B., Zilles, St.: Programming with abstract data types; SIGPLAN Notices 9, Nr. 4 (1977), pp. 50–59Google Scholar
  36. /ML 71/.
    MacLane, S.: Categories for the Working Mathematician; Springer Verlag, New York/Heidelberg/Berlin 1971Google Scholar
  37. /Rei 80/.
    Reichel, H.: Initially Restricting Algebraic Theories, Proc. MFCS'80, Rydzyna, Sept. 1980, Lect. Not. in Comp. Sci. 88 (1980), pp. 504–514Google Scholar
  38. /Sco 62/.
    Scott, D.: Mathematical concepts in programming language semantics; Proc. AFIPS Spring Joint Comp. Conf., 1962, pp.225–234Google Scholar
  39. /WB 80/.
    Wirsing, M., Broy, M.: Abstract Data Types as Lattices of Finitely Generated Models, Proc. MFCS'80, Rydzyna, Sept. 1980, Lect. Not. in Comp. Sci. 88 (1980), pp. 673–685Google Scholar
  40. /WLS 76/.
    Wulf, W.A., London, R.L., Shaw, M.: An introduction to the construction and verification of Alphard programs: IEEE Transactions on Software Engineering SE 24 (1976), pp. 253–265Google Scholar

Copyright information

© Springer-Verlag 1982

Authors and Affiliations

  • Hartmut Ehrig
    • 1
  • Hans-Jörg Kreowski
    • 1
  • James Thatcher
    • 2
  • Eric Wagner
    • 2
  • Jesse Wright
    • 2
  1. 1.Fachbereich Informatik (20) Institut für Software und Theoretische InformatikTechnische Universität BerlinBerlin 10Germany
  2. 2.Mathematical Sciences DepartmentIBM Research CenterYorktown HeightsUSA

Personalised recommendations