Horizontal Composability Revisited

  • Donald Sannella
  • Andrzej Tarlecki
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4060)


We recall the contribution of Goguen and Burstall’s 1980 CAT paper and its powerful influence on theories of specification implementation that were emerging at about the same time, via the introduction of the notions of vertical and horizontal composition of implementations. We then give a different view of implementation which we believe provides a more adequate reflection of the rather subtle interplay between implementation, specification structure and program structure.


Horizontal Structure Abstract Data Type Correct Realization Signature Morphism Subtle Interplay 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AG97]
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  2. [BCH+04]
    Baumeister, H., Cerioli, M., Haxthausen, A., Mossakowski, T., Mosses, P.D., Sannella, D., Tarlecki, A.: Casl semantics. In: Sannella, D., Tarlecki, A. (eds.) [CoF 2004], part III, pp. 115–273 (2004)Google Scholar
  3. [BG80]
    Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification language. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, pp. 292–332. Springer, Heidelberg (1980)Google Scholar
  4. [BM04]
    Bidoit, M., Mosses, P.D.: Casl User Manual. In: Bidoit, M., Mosses, P.D. (eds.) CASL User Manual. LNCS, vol. 2900, pp. 193–201. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. [Bor02]
    Borzyszkowski, T.: Logical systems for structured specifications. Theoretical Computer Science 286, 197–245 (2002)MATHCrossRefMathSciNetGoogle Scholar
  6. [BST02]
    Bidoit, M., Sannella, D., Tarlecki, A.: Architectural specifications. Casl. Formal Aspects of Computing 13, 252–273 (2002)MATHCrossRefGoogle Scholar
  7. [Bur84]
    Burstall, R.M.: Programming with modules as typed functional programming. In: Proc. Intl. Conference on Fifth Generation Computing Systems, Tokyo, pp. 103–112 (1984)Google Scholar
  8. [CoF04]
    CoFI (The Common Framework Initiative). Casl Reference Manual. Springer LNCS 2960, IFIP Series (2004)Google Scholar
  9. [Ehr82]
    Ehrich, H.-D.: On the theory of specification, implementation and parameterization of abstract data types. Journal of the Association for Computing Machinery 29, 206–227 (1982)MATHMathSciNetGoogle Scholar
  10. [EKMP82]
    Ehrig, H., Kreowski, H.-J., Mahr, B., Padawitz, P.: Algebraic implementation of abstract data types. Theoretical Computer Science 20, 209–263 (1982)MATHCrossRefGoogle Scholar
  11. [FJ90]
    Fitzgerald, J., Jones, C.B.: Modularizing the formal description of a database system. In: Langmaack, H., Hoare, C.A.R., Bjorner, D. (eds.) VDM 1990. LNCS, vol. 428, pp. 189–210. Springer, Heidelberg (1990)Google Scholar
  12. [GB80]
    Goguen, J.A., Burstall, R.M.: CAT, a system for the structured elaboration of correct programs from structured specifications. Technical Report CSL-118, Computer Science Laboratory, SRI International (1980)Google Scholar
  13. [GB92]
    Goguen, J.A., Burstall, R.M.: Institutions: Abstract model theory for specification and programming. Journal of the Association for Computing Machinery 39(1), 95–146 (1992), An early version appeared under the title Introducing Institutions. In: Logics of Programs. LNCS, vol. 164, pp. 221–256. Springer, Heidelberg (1984)MATHMathSciNetGoogle Scholar
  14. [Gog96]
    Goguen, J.A.: Parameterized programming and software architecture. In: Proc. 4th Intl. IEEE Conf. on Software Reuse, pp. 2–11 (1996)Google Scholar
  15. [GT79]
    Goguen, J.A., Tardo, J.: An introduction to OBJ: A language for writing and testing software specifications. In: Zelkowitz, M.K. (ed.) Specification of Reliable Software, pp. 170–189. IEEE Press, Cambridge (1979), Reprinted in Software Specification Techniques. In: Gehani, N., McGettrick, A. (ed.) pp. 391– 420, Addison-Wesley, Reading (1985)Google Scholar
  16. [GT00]
    Goguen, J.A., Tracz, W.: An implementation-oriented semantics for module composition. In: Leavens, G., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 231–263. Cambridge University Press, Cambridge (2000)Google Scholar
  17. [GTW78]
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An initial algebra approach to the specification, correctness and implementation of abstract data types. In: Yeh, R.T. (ed.) Current Trends in Programming Methodology. Data Structuring, vol. 4, pp. 80–149 (1978)Google Scholar
  18. [Hoa72]
    Hoare, C.A.R.: Correctness of data representations. Acta Informatica 1, 271–281 (1972)MATHCrossRefGoogle Scholar
  19. [Jon80]
    Jones, C.B.: Software Development: A Rigorous Approach. Prentice-Hall, Englewood Cliffs (1980)MATHGoogle Scholar
  20. [KST97]
    Kahrs, S., Sannella, D., Tarlecki, A.: The definition of Extended ML: A gentle introduction. Theoretical Computer Science 173, 445–484 (1997)MATHCrossRefMathSciNetGoogle Scholar
  21. [LF97]
    Lopes, A., Fiadeiro, J.: Preservation and reflection in specification. In: Johnson, M. (ed.) AMAST 1997. LNCS, vol. 1349, pp. 380–394. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  22. [LPRS88]
    Lee, P., Pfenning, F., Rollins, G., Scherlis, W.: The Ergo support system: An integrated set of tools for prototyping integrated environments. In: Proc. 3rd ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 25–34 (1988)Google Scholar
  23. [Mac71]
    MacLane, S.: for the Working Mathematician. Springer, Heidelberg (1971)Google Scholar
  24. [MHAH04]
    Mossakowski, T., Hoffman, P., Autexier, S., Hutter, D.: CASL logic. In: Mossakowski, T. (ed.) [CoF 2004], part IV, pp. 275–361 (2004)Google Scholar
  25. [Mil71]
    Milner, R.: An algebraic definition of simulation between programs. In: Proc. 2nd Intl. Joint Conf. on Artificial Intelligence, pp. 481–489 (1971)Google Scholar
  26. [MST04]
    Mossakowski, T., Sannella, D., Tarlecki, A.: A simple refinement language for Casl. In: Fiadeiro, J.L., Mosses, P.D., Orejas, F. (eds.) WADT 2004. LNCS, vol. 3423, pp. 162–185. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  27. [MTHM97]
    Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML. MIT Press, Cambridge (1997) (revised)Google Scholar
  28. [SS83]
    Scherlis, W., Scott, D.: First steps towards inferential programming. In: IFIP Congress, pp. 199–212 (1983)Google Scholar
  29. [SST92]
    Sannella, D., Sokołowski, S., Tarlecki, A.: Toward formal development of programs from algebraic specifications: Parameterisation revisited. Acta Informatica 29(8), 689–736 (1992)MATHCrossRefMathSciNetGoogle Scholar
  30. [ST88a]
    Sannella, D., Tarlecki, A.: Specifications in an arbitrary institution. Information and Computation 76, 165–210 (1988)MATHCrossRefMathSciNetGoogle Scholar
  31. [ST88b]
    Sannella, D., Tarlecki, A.: Toward formal development of programs from algebraic specifications: Implementations revisited. Acta Informatica 25, 233–281 (1988)MATHCrossRefMathSciNetGoogle Scholar
  32. [ST89]
    Sannella, D., Tarlecki, A.: Toward formal development of ML programs: Foundations and methodology. In: Díaz, J., Orejas, F. (eds.) TAPSOFT 1989 and CCIPL 1989. LNCS, vol. 352, pp. 375–389. Springer, Heidelberg (1989)Google Scholar
  33. [ST97]
    Sannella, D., Tarlecki, A.: Essential concepts of algebraic specification and program development. Formal Aspects of Computing 9, 229–269 (1997)MATHCrossRefGoogle Scholar
  34. [ST99]
    Sannella, D., Tarlecki, A.: Algebraic preliminaries. In: Astesiano, E., Kreowski, H.-J., Krieg-Brückner, B. (eds.) Algebraic Foundations of Systems Specification. ch. 2, Springer, Heidelberg (1999)Google Scholar
  35. [SW83]
    Sannella, D., Wirsing, M.: A kernel language for algebraic specification and implementation. In: Karpinski, M. (ed.) FCT 1983. LNCS, vol. 158, pp. 413–427. Springer, Heidelberg (1983)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Donald Sannella
    • 1
  • Andrzej Tarlecki
    • 2
    • 3
  1. 1.Laboratory for Foundations of Computer ScienceUniversity of Edinburgh 
  2. 2.Institute of InformaticsWarsaw University 
  3. 3.Institute of Computer SciencePolish Academy of Sciences 

Personalised recommendations