Hostname: page-component-76fb5796d-r6qrq Total loading time: 0 Render date: 2024-04-26T12:11:25.771Z Has data issue: false hasContentIssue false

A new approach to abstract data types, I Informal development

Published online by Cambridge University Press:  04 March 2009

Solomon Feferman
Affiliation:
Dept. of Mathematics, Stanford University, CA94305

Abstract

The concept of abstract data types (ADTs) has emerged in the last fifteen years or so as one of the major programming design tools, with the emphasis on modular construction of large-scale programe. ADTs provide the means for seperating how data objects may be used from the different ways in which they actually are, or might be, implemented. A foundation for the theory of compputation with ADTs must provide answers to such questions as: What are ADTs and how may they be specified? What does it mean to implement an ADT? How may we construct new ADTs from old ones? What does it mean to compute with ADTs? This paper is devoted to a new and rather general, constructively based approach to these questions.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1992

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Beeson, M. (1985), Foundations of Constructive Mathematics(Springer-Verlag, New York).Google Scholar
Bergstra, J.A. and Tucker, J.V. (1983), Initial and final algebra semantics for data type specifications: two characterization theorems, SIAM J. Comput. 12, 366387.Google Scholar
Bidoit, M., Kreowski, H.-J., Lescanne, P., Orejas, F. and Sanella, D., (eds.) (1991), Algebraic System Specification and Development, LNCS 501.Google Scholar
Bishop, E. (1967) Foundations of Constructive Analysis (McGraw Hill, New York).Google Scholar
Bishop, E., and Bridges, D. (1985), Constructive Analysis (Springer-Verlag, New York).Google Scholar
Boehm, H.-J. (1987), Constructive real interpretation of numerical programs, in SIGPLAN ‘87 Symposium on Interpreters and Interpretive Techniques, 214221.Google Scholar
Boehm, H.-J., and Cartwright, R. (1990), Exact real arithmetic: Formulating real numbers as functions, in Turner (1990), 4364.Google Scholar
Boehm, H.-J., Cartwright, R., O’Donnell, M.J., and Riggle, M. (1986), Extract real arithmetic: A case study in higher order programming, in Proc. 1986 ACM Conf. on Lisp and Functional Programming, 162–173.Google Scholar
Broy, Y., and Wirsing, M. (1982), Partial abstract data types, Acta Informatica 18 4764.Google Scholar
Cartwright, R. (1980) A constructive alternative to axioma data type definitions, Conference Record of the 1980 LISP Conference, Redwood Estates, 4655.Google Scholar
Feferman, S. (1979), Constructive theories of functions and classes, in Logic Colloquium '78 (North-Holland, Amsterdam).Google Scholar
Feferman, S. (1982), Inductively presented systems and the formalization of metamathematics, in Logic Colloquium '80 (North-Holland, Amsterdam) 95128.Google Scholar
Feferman, S. (1984), Between constructive and classical mathematics, in Computation and proof Theory, Lecture Notes in Maths 1104, 143162.Google Scholar
Feferman, S. (1989), Finitary inductively presented logics, in Logic Colloquium '88 (North-Holland, Amsterdam), 191220.Google Scholar
Feferman, S. (1991), Logics for termination and correctness of functionsl programs, Proc. 1989 MSRI Conf. on Logic for Computer Science, (to appear).Google Scholar
Feferman, S. (1991a), Logics for termination and correctness of functional programs, II. Logics of strength PRA, Proc. Leeds proof Theory '90 (to appear).Google Scholar
Goguen, J.A. (1990), Higher-order functions considered unnecessary for higher-order programming, in Turner(1990), 309351.Google Scholar
Goguen, J.A. and Meseguer, J. (1989), Order-sorted algebra I, Report SRI-CSL-89–10, (to appear in Theoretical Computer Science).Google Scholar
Goguen, J.A., Thatcher, J.W., Wagner, E.G. and Wright, J.B. (1977), Initial algebra semantics and continuous algebras, J. ACM 24, 6895.Google Scholar
Hoover, H.J. (1990), Computational models for feasible real analysis, in Feasible Mathematics (Birkhaüser, Boston), 221–.Google Scholar
Liskov, B. and Zilles, S. (1974), Programming with abstract data types, ACM SIGPLAN Notices 9 50–59.Google Scholar
Meseguer, J. and Goguen, J.A. (1985), Initiality, induction and computability, in Algebraic Methods in Semantics (Cambridge Univ. Press, Cambridge), 459541.Google Scholar
Mines, R.Richman, F. and Ruitenberg, W. (1988), A Course in Constructive Algebra (Springer-Verlag, New York).CrossRefGoogle Scholar
Mitchell, J.C. and Plotkin, G.D. (1988), Abstract types have existential type, ACM Trans. on Programming Languages and Systems 10, 470502 (preliminary version appeared in 12th ACM Sympos. on POPL, 1985).Google Scholar
Möller, B. (1985), On the algebraic specification of infinite objects—Ordered and continuous models of algebraic types, Acta Informatica 22, 537578.Google Scholar
Moschovakis, Y.N. (1984), Abstract recursion as a foundation of the theory of recursive algorithms, in Computation and Proof Theory, Lecture Notes in Maths. 1104, 289364.Google Scholar
Moschovakis, Y.N. (1989), The formal language of recursion, J. Symbolic Logic 54, 12161252.Google Scholar
Mosses, P.D. (1990), Denotational semantics, in van Leeuwen (1990) 575631.Google Scholar
Platek, R. (1966), Foundations of Recursion Theory, Ph.D. Thesis, Stanford University.Google Scholar
Rabin, M. (1960), Computable algebra, general theory and theory of computable fields, Trans. Amer. Math. Soc. 98, 341360.Google Scholar
Reichel, H., (1987), Initial Computability, Algebraic Specifications, and Partial Algebras (Clarendon press, Oxford).Google Scholar
Talcott, C.L. (1990), A theory for program and data specification, Design and Implementation of Symbolic Computation Systems, DISCO '90, LNCS 429, 91100, (full version to appear in Theoretical Computer Science).Google Scholar
Tucker, J.V. and Zucker, J.T. (1988), Program Correctness over Abstract Data Types, with Error-State Semantics, CWI Monograph Series (North-Holland and CWI, Amsterdam).Google Scholar
D.A., Turner (ed.) (1990), Research Topics in Functional Programming (Addison-Wesley, Reading).Google Scholar
Van Leeuwen, J. (ed.) (1990), Handbook of Theoretical Computer, Vol. B, Formal Models and Semantics (MIT Press, Cambridge and Elsevier, Amsterdam).Google Scholar
Vuillemin, J. (1988), Exact real computer arithmetic with continued fractions, proc. 1988 ACM Conference on LISP and Functional Programming, (ACM, New York), 1427.Google Scholar
Wirsing, M. (1990), Algebraic specification, in van Leeuwan (1990), 673788.Google Scholar