Advertisement

Mathematical systems theory

, Volume 14, Issue 1, pp 97–139 | Cite as

Algebraic specification of data types: A synthetic approach

  • Daniel J. Lehmann
  • Michael B. Smyth
Article

Abstract

A mathematical interpretation is given to the notion of a data type, which allows procedural data types and circularly defined data types. This interpretation seems to provide a good model for what most computer scientists would call data types, data structures, types, modes, clusters or classes. The spirit of this paper is that of McCarthy [43] and Hoare [18]. The mathematical treatment is the conjunction of the ideas of Scott on the solution of domain equations [34], [35], and [36] and the initiality property noticed by the ADJ group (ADJ [2] and [3]). The present work adds operations to the data types proposed by Scott and proposes an alternative to the equational specifications proposed by Guttag [14], Guttag and Horning [15] and ADJ [2]. The advantages of such a mathematical interpretation are the following: throwing light on some ill-understood constructs in high-level programming languages, easing the task of writing correct programs and making possible proofs of correctness for programs or implementations.

Keywords

Data Structure Computer Scientist Computational Mathematic Programming Language Data Type 
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.
    J. Adamek, Free algebras and automata realizations in the language of categories, Commentationes Mathematicae Universitatis Carolinae 589–602 (1974).Google Scholar
  2. 2.
    ADJ: J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. B. Wright, Abstract data types as initial algebras and the correctness of data representations, Proc. Conference on Computer Graphics, Pattern Recognition and Data Structures (1975).Google Scholar
  3. 3.
    ADJ: J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. B. Wright, Initial algebra semantics and continuous algebras, J. ACM 24, No. 1, 68–95 (1977).Google Scholar
  4. 4.
    M. A. Arbib, Free dynamics and algebraic semantics, Lecture Notes in computer Science 56, 212–227 (1977).Google Scholar
  5. 5.
    M. A. Arbib and E. G. Manes, A categorist's view of automata and systems, category theory applied to computation and control, Springer Lecture Notes in Computer Science, Vol. 25 (1974).Google Scholar
  6. 6.
    J. de Bakker, Recursive procedures, Math. Centrum, Amsterdam (1974).Google Scholar
  7. 7.
    M. Barr, Coequalizers and free triples, Math. 2., 116, 307–322 (1970).Google Scholar
  8. 8.
    G. Birkhoff and J. D. Lipson, Heterogeneous algebras, J. Combinatorial Theory 8, 115–133 (1970).Google Scholar
  9. 9.
    W. H. Burge, Recursive programming techniques, Addison Wesley (1975).Google Scholar
  10. 10.
    B. Courcelle and M. Nivat, Algebraic families of interpretations, 17th Ann. IEEE Symp. on Foundations of Comp. Sci., 137–146 (1978).Google Scholar
  11. 11.
    D. P. Friedman and D. S. Wise, CONS should not evaluate its arguments, Proc. of 3rd Coll. on Automata, Languages, and Programming, Edinburgh (1976).Google Scholar
  12. 12.
    M. Gordon, Models of pure LISP, Ph.D. thesis, Dept. of Artificial Intelligence, Edinburgh University (1973).Google Scholar
  13. 13.
    M. Gordon, R. Milner, L. Morris, M. Newey, and C. Wadsworth, A metalanguage for interactive proof in LCF, 5th Annual ACM Symp. on Principles of Programming Languages, Tucson, AZ (1978).Google Scholar
  14. 14.
    J. V. Guttag, Abstract data types and the development of data structures, Communications of the ACM, 20, No. 6, 396–404 (1977).Google Scholar
  15. 15.
    J. V. Guttag and J. J. Horning, The algebraic specification of abstract data types, Acta Informatica 10, 27–52 (1978).Google Scholar
  16. 16.
    P. Henderson and J. Morris, Jr., A lazy evaluator, 3rd ACM Symposium on Principles of Programming Languages, 95–103 (1976).Google Scholar
  17. 17.
    H. Herrlich and G. E. Strecker, Category theory, Allyn and Bacon (1973).Google Scholar
  18. 18.
    C. A. R. Hoare, Recursive data structures, J. Computer and System Sciences 4, No. 2, 95–103 (1975).Google Scholar
  19. 19.
    A. Kanda, Data types as initial algebras, 19th Annual Symp. on Foundations of Computer Science (1978).Google Scholar
  20. 20.
    D. Knuth, The art of computer programming, Vol. 1, Addison-Wesley (1969).Google Scholar
  21. 21.
    F. W. Lawvere, An elementary theory of the category of sets, Proc. National Academy of Sciences 52, 1506–1510 (1964).Google Scholar
  22. 22.
    D. J. Lehmann, Categories for fixpoint semantics, Theory of Computation Report No. 15, Dept. of Computer Science, University of Warwick (1976); see also Proc. 17th Annual Symp. on Foundation of Computer Science, IEEE (1976).Google Scholar
  23. 23.
    D. J. Lehmann, Models in ALGOL Y, Proc. 5th Annual I.I.I. Conference, May 1977, Guidel, France, Publ, by I.R.I.A. (1977).Google Scholar
  24. 24.
    D. J. Lehmann, On the algebra of order, see extended abstract in Proc. 19th Annual Symp. on F.O.C.S. IEEE, to appear.Google Scholar
  25. 25.
    D. Lehmann and M. Smyth, Data types, Theory of Computation Report No. 19, University of Warwick (1977).Google Scholar
  26. 26.
    S. MacLane, Categories for the working mathematician, Springer (1971).Google Scholar
  27. 27.
    S. MacLane and G. Birkhoff, Algebra, Macmillan (1967).Google Scholar
  28. 28.
    Z. Manna, Mathematical theory of computation, McGraw-Hill (1974).Google Scholar
  29. 29.
    G. Markowsky, Categories of chain-complete posets, IBM Research Tech. Report RC5100, to appear in Theoretical Computer Science.Google Scholar
  30. 30.
    J. Mesguer, On order-complete universal algebra and enriched functorial semantics, Lecture Notes in Computer Science 56, 294–301 (1977).Google Scholar
  31. 31.
    G. D. Plotkin, A powerdomain construction, SIAM J. Computing 5, No. 3, 452–487 (1976).Google Scholar
  32. 32.
    G. D. Plotkin and M. B. Smyth, The category theoretic solution of recursive domain equations, Proc 18th Annual Symp. on F.O.C.S. I.E.E.E. (1977).Google Scholar
  33. 33.
    W. P. de Roever, Recursive program schemes: semantics and proof theory, Mathematical Centre Tract No. 70, Amsterdam (1976).Google Scholar
  34. 34.
    D. S. Scott, The lattice of flow diagrams, in Semantics of Algorithmic Languages (E. Engeler, ed.), Springer Lecture Notes in Mathematics 188, 311–368 (1971).Google Scholar
  35. 35.
    D. S. Scott, Continuous lattices, in Toposes, Algebraic Geometry, and Logic (F. W. Lawvere, ed.), Springer Lecture Notes in Mathematics 274, 97–136 (1972).Google Scholar
  36. 36.
    D. S. Scott, Data types as lattices, SIAM J. Computing 5, No. 3, 522–587 (1976).Google Scholar
  37. 37.
    M. B. Smyth, Effectively given domains, Theor. Comp. Sci. 5, 257–274 (1977).Google Scholar
  38. 38.
    M. B. Smyth, Powerdomains, J. Comp. Syst. Sci. 16, 23–36 (1978).Google Scholar
  39. 39.
    J. Stoy, Denotational semantics, M.I.T. Press (1978).Google Scholar
  40. 40.
    M. Wand, On the recursive specification of data types, Category Theory Applied to Computation and Control, Springer Lecture Notes in Computer Science Vol. 25 (1974).Google Scholar
  41. 41.
    M. Wand, Fixed-point constructions in order-enriched categories, Technical Report No. 23, Comp. Science Department, Indiana University (1975).Google Scholar
  42. 42.
    A. van Wijngaarden, B. J. Mailloux, J. E. L. Peck, C. H. A. Koster, M. Sintzoff, C. H. Lindsey, L. G. L. T. Meertens, and R. G. Fisker, Revised report on the Algorithmic Language ALGOL 68, Acta Informatica 5, 1–236 (1975).Google Scholar
  43. 43.
    J. McCarthy, A basis for a mathematical theory of computation, in Computer Programming and Formal Systems (P. Braffort and D. Hirschberg, eds.), North-Holland, Amsterdam (1963).Google Scholar

Copyright information

© Springer-Verlag New York Inc 1981

Authors and Affiliations

  • Daniel J. Lehmann
    • 1
  • Michael B. Smyth
    • 2
  1. 1.Mathematics Institute Hebrew UniversityJerusalemIsrael
  2. 2.Department of Computer StudiesThe University of LeedsLeedsU.K.

Personalised recommendations