Towards a theory of abstract data types: A discussion on problems and tools
This paper aims to show that, in order to capture a quite relevant feature such as the recursiveness of abstract data types, Model Theory works better than Category Theory.
First, various categorial notions such as "initiality", "finality", "monoinitiality", "epifinality", "weak monoinitiality" and "weak epifinality" are analyzed, from a model theoretic point of view, as regards the "abstractness" and the "cardinality" of the models they determine. In particular, countability is seen as a necessary condition to get recursive data types, and it is shown that only "initiality", "monoinitiality", "epifinality" and "weak epifinality" allow to select countable models.
An extensive analysis is then devoted to the problem of the recursiveness of abstract data types: we provide a formal definition of recursiveness and show that it neither collapses, nor it is incompatible with the "abstractness" requirement. We also show that none of the above quoted categorial notions captures recursiveness.
Finally, we consider our own definition of abstract data type, based on model-theoretic notions; we analyze this definition in the frame of the proposed formalization of recursiveness, and illustrate the sense according to which it captures recursiveness.
Keywordsabstractness countability homomorphism isomorphic embedding recursiveness
- Bertoni, A., Mauri, G., Miglioli, P., A characterization of abstract data as model theoretic invariants, Proc. 6o ICALP, Lect. Not. in Comp. Sci., 71, pp. 26–37, Springer, Berlin, 1979Google Scholar
- Bertoni, A., Mauri, G., Miglioli, P., Wirsing, M., On different approaches to abstract data types and the existence of recursive models, Bulletin EATCS, 9, 1979Google Scholar
- Broy, M., Dosch, W., Partsch, H., Pepper, P., Wirsing, M., Existential quantifiers in abstract data types, Proc. 6o ICALP, Lect. Not. in Comp. Sci. 71, 73–87, Springer, Berlin, 1979Google Scholar
- Chang, C.C., Keisler, H.J., Model theory, North-Holland, Amsterdam, 1973Google Scholar
- Goguen, J.A., Thatcher, J.W., Wagner, E.G., An initial algebra approach to the specification, correctness, and implementation of abstract data types, IBM Res. Rep. RC6487, Yorktown Heights, 1976Google Scholar
- Guttag, J.V., Horning, J.J., The algebraic specification of abstract data types, Acta Informatica 10, 27–52, 1978Google Scholar
- Keisler, H.J., Fundamentals of model theory, in "Handbook of Mathematical Logic" (J. Barwise ed.), 47–104, North-Holland, Amsterdam, 1977Google Scholar
- Kreisel, G., Model-theoretic invariants: applications to recursive and hyperarithmetic operations, Proc. Symp. on the Theory of Models, North-Holland, Amsterdam, 1965Google Scholar
- Liskov, B.H., Zilles, S.N.; Programming with abstract data types, SIGPLAN Notices 6, 1974Google Scholar
- Mac Lane, S., Categories for working mathematician, Springer, Berlin, 1971Google Scholar
- Majster, M.E., Data types, abstract data types and their specification problem, Theoretical Computer Science 8, 89–127, 1979Google Scholar
- Morris, F.L., Types are not sets, Proc. ACM Symp. On the Principles of Programming Languages, 120–124, 1973Google Scholar
- Rogers, H., Theory of recursive functions and effective computability, Mc Graw Hill Book Co, New York, 1967Google Scholar
- Standish, T.A., Data structures: an axiomatic approach, in "Current trends in programming methodology" (R.T. Yeh ed.), vol.IV, Prentice Hall, 1978Google Scholar
- Zilles, S.N., Algebraic specification of data types, Project MAC Progress Rep. 11, MIT, Cambridge, Mass., 1974Google Scholar
- Wand, M., Final algebra semantics and data type extensions, Indiana University, Comp. Sci. Dept., Tec. Rep. n.65; 1977Google Scholar