Advertisement

An algebraic approach to refinement

  • Joseph A. Goguen
Invited Talks
Part of the Lecture Notes in Computer Science book series (LNCS, volume 428)

Abstract

After raising some of the issues involved in comparing different approaches to program refinement, this paper describes some recent results in the algebraic tradition and illustrates them with a simple example. The basic ideas are that a specification is a structured theory and a refinement is a structured theory morphism. A final section summarizes some good and bad points of this approach.

Keywords

Unify Algebra Algebraic Semantic Equational Logic Abstract Data Type Refining Theory 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    André Arnold, P. Naudin, and Maurice Nivat. On semantics of nondeterministic recursive program schemes. In Algebraic Methods in Semantics, pages 1–33. Cambridge University Press, 1985.Google Scholar
  2. [2]
    Christoph Beierle and Angelika Voss. Implementation specifications. In Hans-Jörg Kreowski, editor, Recent Trends in Data Type Specification, volume Informatik-Fachberichte 116, pages 39–52. Springer-Verlag, 1985. Selected papers from the Third Workshop on Theory and Applications of Abstract Data Types.Google Scholar
  3. [3]
    Jan Bergstra and John Tucker. Characterization of computable data types by means of a finite equational specification method. In Automata, Languages and Programming, Seventh Colloquium, pages 76–90. Springer-Verlag, 1980. Lecture Notes in Computer Science, Volume 81.Google Scholar
  4. [4]
    Garrett Birkhoff. On the structure of abstract algebras. Proceedings of the Cambridge Philosophical Society, 31:433–454, 1935.Google Scholar
  5. [5]
    Rod Burstall and Joseph Goguen. Putting theories together to make specifications. In Raj Reddy, editor, Proceedings, Fifth International Joint Conference on Artificial Intelligence, pages 1045–1058. Department of Computer Science, Carnegie-Mellon University, 1977.Google Scholar
  6. [6]
    Rod Burstall and Joseph Goguen. The semantics of Clear, a specification language. In Dines Bjorner, editor, Proceedings, 1979 Copenhagen Winter School on Abstract Software Specification, pages 292–332. Springer-Verlag, 1980. Lecture Notes in Computer Science, Volume 86; based on unpublished notes handed out at the Symposium on Algebra and Applications, Stefan Banach Center, Warszawa, Poland.Google Scholar
  7. [7]
    Rod Burstall and Joseph Goguen. Algebras, theories and freeness: An introduction for computer scientists. In Manfred Wirsing and Gunther Schmidt, editors, Theoretical Foundations of Programming Methodology, pages 329–350. Reidel, 1982. Proceedings, 1981 Marktoberdorf NATO Summer School, NATO Advanced Study Institute Series, Volume C91.Google Scholar
  8. [8]
    Paul M. Cohn. Universal Algebra. Harper and Row, 1965. Revised edition 1980.Google Scholar
  9. [9]
    Bruno Courcelle and Maurice Nivat. The algebraic semantics of recursive program schemes. In Proceedings, Mathematical Foundations of Computer Science. Springer-Verlag, 1978. Lecture Notes in Computer Science, Volume 64.Google Scholar
  10. [10]
    Ole-Johan Dahl, B. Myhrhaug, and Kristen Nygaard. The SIMULA 67 common base language. Technical report, Norwegian Computing Center, Oslo, 1970. Publication S-22.Google Scholar
  11. [11]
    Hans-Dieter Ehrich, Amilcar Sernadas, and Christina Sernadas. Objects, object types, and object identification. In Hartmut Ehrig et al., editors, Categorical Methods in Computer Science with Aspects from Topology, pages 142–156. Springer-Verlag, 1989. Lecture Notes in Computer Science, Volume 393.Google Scholar
  12. [12]
    Kokichi Futatsugi, Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Principles of OBJ2. In Brian Reid, editor, Proceedings, 12th ACM Symposium on Principles of Programming Languages, pages 52–66. Association for Computing Machinery, 1985.Google Scholar
  13. [13]
    Joseph Goguen. Semantics of concurrent interacting objects using sheaf theory. Lecture given at U.K.-Japan Symposium on Computation, Oxford, September 1989; paper in preparation.Google Scholar
  14. [14]
    Joseph Goguen. Types as theories. Lecture given at Symposium on General Topology and Applications, Oxford, June 1989; to appear in proceedings, Oxford University Press.Google Scholar
  15. [15]
    Joseph Goguen. Mathematical representation of hierarchically organized systems. In E. Attinger, editor, Global Systems Dynamics, pages 112–128. S. Karger, 1971.Google Scholar
  16. [16]
    Joseph Goguen and Rod Burstall. Institutions: Abstract model theory for specification and programming. Report ECS-LFCS-90-106, Department of Computer Science, University of Edinburgh, January 1990, and submitted for publication 1989; preliminary version in Report CSLI-85-30, Center for the Study of Language and Information, Stanford University, 1985, and a remote ancestor in “Introducing Institutions,” in Proceedings, Logics of Programming Workshop, Edward Clarke and Dexter Kozen, editors, Springer-Verlag Lecture Notes in Computer Science, Volume 164, pages 221–256, 1984.Google Scholar
  17. [17]
    Joseph Goguen and Rod Burstall. CAT, a system for the structured elaboration of correct programs from structured specifications. Technical Report Technical Report CSL-118, SRI Computer Science Lab, October 1980.Google Scholar
  18. [18]
    Joseph Goguen, Jean-Pierre Jouannaud, and José Meseguer. Operational semantics of order-sorted algebra. In W. Brauer, editor, Proceedings, 1985 International Conference on Automata, Languages and Programming. Springer-Verlag, 1985. Lecture Notes in Computer Science, Volume 194.Google Scholar
  19. [19]
    Joseph Goguen and José Meseguer. Universal realization, persistent interconnection and implementation of abstract modules. In M. Nielsen and E.M. Schmidt, editors, Proceedings, 9th International Conference on Automata, Languages and Programming, pages 265–281. Springer-Verlag, 1982. Lecture Notes in Computer Science, Volume 140.Google Scholar
  20. [20]
    Joseph Goguen and José Meseguer. Completeness of many-sorted equational logic. Houston Journal of Mathematics, 11(3):307–334, 1985. Preliminary versions have appeared in: SIGPLAN Notices, July 1981, Volume 16, Number 7, pages 24–37; SRI Computer Science Lab Technical Report CSL-135, May 1982; and Report CSLI-84-15, Center for the Study of Language and Information, Stanford University, September 1984.Google Scholar
  21. [21]
    Joseph Goguen and José Meseguer. Eqlog: Equality, types, and generic modules for logic programming. In Douglas DeGroot and Gary Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 295–363. Prentice-Hall, 1986. An earlier version appears in Journal of Logic Programming, Volume 1, Number 2, pages 179–210, September 1984.Google Scholar
  22. [22]
    Joseph Goguen and José Meseguer. Unifying functional, object-oriented and relational programming, with logical semantics. In Bruce Shriver and Peter Wegner, editors, Research Directions in Object-Oriented Programming, pages 417–477. MIT Press, 1987. Preliminary version in SIGPLAN Notices, Volume 21, Number 10, pages 153–162, October 1986.Google Scholar
  23. [23]
    Joseph Goguen and José Meseguer. Order-sorted algebra I: Equational deduction for multiple inheritance, overloading, exceptions and partial operations. Technical Report SRI-CSL-89-10, SRI International, Computer Science Lab, July 1989. Given as lecture at Seminar on Types, Carnegie-Mellon University, June 1983; many draft versions exist.Google Scholar
  24. [24]
    Joseph Goguen, James Thatcher, and Eric Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. Technical Report RC 6487, IBM T.J. Watson Research Center, October 1976. In Current Trends in Programming Methodology, IV, Raymond Yeh, editor, Prentice-Hall, 1978, pages 80–149.Google Scholar
  25. [25]
    Joseph Goguen, James Thatcher, Eric Wagner, and Jesse Wright. Abstract data types as initial algebras and the correctness of data representations. In Alan Klinger, editor, Computer Graphics, Pattern Recognition and Data Structure, pages 89–93. IEEE Press, 1975.Google Scholar
  26. [26]
    Joseph Goguen, James Thatcher, Eric Wagner, and Jesse Wright. Initial algebra semantics and continuous algebras. Journal of the Association for Computing Machinery, 24(1):68–95, January 1977. an early version appears as “Initial Algebra Semantics”, with James Thatcher, IBM T.J. Watson Research Center Report RC 4865, May 1974.Google Scholar
  27. [27]
    Joseph Goguen and Timothy Winkler. Introducing OBJ3. Technical Report SRI-CSL-88-9, SRI International, Computer Science Lab, August 1988.Google Scholar
  28. [28]
    Robert Goldblatt. Topoi, the Categorial Analysis of Logic. North-Holland, 1979.Google Scholar
  29. [29]
    Irene Guessarian. Algebraic Semantics. Springer-Verlag, 1981. Lecture Notes in Computer Science, Volume 99.Google Scholar
  30. [30]
    John Guttag. The Specification and Application to Programming of Abstract Data Types. PhD thesis, University of Toronto, 1975. Computer Science Department, Report CSRG-59.Google Scholar
  31. [31]
    Ian Hayes and Cliff Jones. Specifications are not (necessarily) executable. Technical Report UMCS-89-12-1, University of Manchester, Computer Science Department, December 1989.Google Scholar
  32. [32]
    C.A.R. Hoare. Proof of correctness of data representation. Acta Informatica, 1:271–281, 1972.Google Scholar
  33. [33]
    C.A.R. Hoare. Communicating sequential processes. Communications of the ACM, pages 666–677, August 1978.Google Scholar
  34. [34]
    Saunders Mac Lane. Categories for the Working Mathematician. Springer-Verlag, 1971.Google Scholar
  35. [35]
    Ernest Manes and Michael Arbib. Algebraic Approaches to Program Semantics. Springer-Verlag, 1986.Google Scholar
  36. [36]
    José Meseguer and Joseph Goguen. Initiality, induction and computability. In Maurice Nivat and John Reynolds, editors, Algebraic Methods in Semantics, pages 459–541. Cambridge University Press, 1985.Google Scholar
  37. [37]
    Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.Google Scholar
  38. [38]
    Robin Milner. A Calculus of Communicating Systems. Springer-Verlag, 1980. Lecture Notes in Computer Science, Volume 92.Google Scholar
  39. [39]
    Carroll Morgan. Programming from Specifications. Prentice Hall, 1990.Google Scholar
  40. [40]
    Peter Mosses. Unified algebras and action semantics. In Proceedings, Symposium on Theoretical Aspects of Computer Science. Springer-Verlag, 1989. Lecture Notes in Computer Science, Volume 349.Google Scholar
  41. [41]
    Peter Mosses. Unified algebras and institutions. Technical Report DAIMI PB-274, Computer Science Department, Aarhus University, 1989.Google Scholar
  42. [42]
    Maurice Nivat. On the interpretation of recursive polyadic program schemes. Symposium Mathematica, 15:255–281, 1975.Google Scholar
  43. [43]
    Donald Sannella and Andrzej Tarlecki. Building specifications in an arbitrary institution. Information and Control, 76:165–210, 1988. Earlier version in Proceedings, International Symposium on the Semantics of Data Types, Lecture Notes in Computer Science, Volume 173, Springer-Verlag, 1985.Google Scholar
  44. [44]
    J. Michael Spivey. Understanding Z. Cambridge University Press, 1988.Google Scholar
  45. [45]
    Steven Zilles. Abstract specification of data types. Technical Report 119, Computation Structures Group, Massachusetts Institute of Technology, 1974.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Joseph A. Goguen
    • 1
  1. 1.Programming Research GroupOxford University SRI InternationalMenlo Park

Personalised recommendations