# Algebraic specification of data types: A synthetic approach

- 141 Downloads
- 45 Citations

## 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## Preview

Unable to display preview. Download preview PDF.

## References

- 1.J. Adamek, Free algebras and automata realizations in the language of categories, Commentationes Mathematicae Universitatis Carolinae 589–602 (1974).Google Scholar
- 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.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.M. A. Arbib, Free dynamics and algebraic semantics, Lecture Notes in computer Science 56, 212–227 (1977).Google Scholar
- 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.J. de Bakker, Recursive procedures, Math. Centrum, Amsterdam (1974).Google Scholar
- 7.M. Barr, Coequalizers and free triples, Math. 2., 116, 307–322 (1970).Google Scholar
- 8.G. Birkhoff and J. D. Lipson, Heterogeneous algebras, J. Combinatorial Theory 8, 115–133 (1970).Google Scholar
- 9.W. H. Burge, Recursive programming techniques, Addison Wesley (1975).Google Scholar
- 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.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.M. Gordon, Models of pure LISP, Ph.D. thesis, Dept. of Artificial Intelligence, Edinburgh University (1973).Google Scholar
- 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.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.J. V. Guttag and J. J. Horning, The algebraic specification of abstract data types, Acta Informatica 10, 27–52 (1978).Google Scholar
- 16.P. Henderson and J. Morris, Jr., A lazy evaluator, 3rd ACM Symposium on Principles of Programming Languages, 95–103 (1976).Google Scholar
- 17.H. Herrlich and G. E. Strecker, Category theory, Allyn and Bacon (1973).Google Scholar
- 18.C. A. R. Hoare, Recursive data structures, J. Computer and System Sciences 4, No. 2, 95–103 (1975).Google Scholar
- 19.A. Kanda, Data types as initial algebras, 19th Annual Symp. on Foundations of Computer Science (1978).Google Scholar
- 20.D. Knuth, The art of computer programming, Vol. 1, Addison-Wesley (1969).Google Scholar
- 21.F. W. Lawvere, An elementary theory of the category of sets, Proc. National Academy of Sciences 52, 1506–1510 (1964).Google Scholar
- 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.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.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.D. Lehmann and M. Smyth, Data types, Theory of Computation Report No. 19, University of Warwick (1977).Google Scholar
- 26.S. MacLane, Categories for the working mathematician, Springer (1971).Google Scholar
- 27.S. MacLane and G. Birkhoff, Algebra, Macmillan (1967).Google Scholar
- 28.Z. Manna, Mathematical theory of computation, McGraw-Hill (1974).Google Scholar
- 29.G. Markowsky, Categories of chain-complete posets, IBM Research Tech. Report RC5100, to appear in Theoretical Computer Science.Google Scholar
- 30.J. Mesguer, On order-complete universal algebra and enriched functorial semantics, Lecture Notes in Computer Science 56, 294–301 (1977).Google Scholar
- 31.G. D. Plotkin, A powerdomain construction, SIAM J. Computing 5, No. 3, 452–487 (1976).Google Scholar
- 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.W. P. de Roever, Recursive program schemes: semantics and proof theory, Mathematical Centre Tract No. 70, Amsterdam (1976).Google Scholar
- 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.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.D. S. Scott, Data types as lattices, SIAM J. Computing 5, No. 3, 522–587 (1976).Google Scholar
- 37.M. B. Smyth, Effectively given domains, Theor. Comp. Sci. 5, 257–274 (1977).Google Scholar
- 38.M. B. Smyth, Powerdomains, J. Comp. Syst. Sci. 16, 23–36 (1978).Google Scholar
- 39.J. Stoy, Denotational semantics, M.I.T. Press (1978).Google Scholar
- 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.M. Wand, Fixed-point constructions in order-enriched categories, Technical Report No. 23, Comp. Science Department, Indiana University (1975).Google Scholar
- 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.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