Data types

The concept of a data type is playing an increasingly important part in current thinking about the design of programming languages. It is therefore important to study the mathematical semantics of data types. This has been done in two different and diverging ways. On one hand Scott suggested that data types are lattices and showed how to understand circular definitions of data types; his approach incorporated a full treatment of functional data types [7,8J. On the other hand Burstall-Landin, Burstall-Thatcher, Zilles, Guttag-Horowitz-Musser and the ADJ group [4,5,11,6,1J advocated an algebraic treatment of data types which emphasized the fact that a data type consists not only of a set (sometimes partially ordered) but also of operations satisfying certain equations. Their approach, useful in proving things about data types and about programs manipulating data types, did not encompass functional data types. We propose a unified framework, making extensive use of initiality (cf. [2]), in which functional data types can be treated, as well as all features of data type definition and use which occur in existing programming languages and even some features which (though highly desirable) do not occur in any of them.

[1]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[2]  Rod M. Burstall,et al.  The algebraic theory of recursive program schemes , 1974, Category Theory Applied to Computation and Control.

[3]  H. L. Morgan The Generation of a Unique Machine Description for Chemical Structures-A Technique Developed at Chemical Abstracts Service. , 1965 .

[4]  W. Todd Wipke,et al.  Simulation and evaluation of chemical synthesis. Computer representation and manipulation of stereochemistry , 1974 .

[5]  S. Krishnan,et al.  Hash Functions for Rapid Storage and Retrieval of Chemical Structures , 1978, J. Chem. Inf. Comput. Sci..

[6]  Peter J. Landin,et al.  PROGRAMS AND THEIR PROOFS: AN ALGEBRAIC APPROACH, , 1968 .

[7]  John L. Bell,et al.  A course in mathematical logic , 1977 .

[8]  P. Martin-Löf An Intuitionistic Theory of Types: Predicative Part , 1975 .

[9]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.

[10]  STEPHrN L. BLOOM,et al.  Varieties of Ordered Algebras , 1976, J. Comput. Syst. Sci..

[11]  William J. Wiswesser,et al.  Computer-Generated Substructure Codes (Bit Screens), , 1971 .

[12]  Mitchell Wand,et al.  On the recursive specification of data types , 1974, Category Theory Applied to Computation and Control.

[13]  Dana S. Scott,et al.  Data Types as Lattices , 1976, SIAM J. Comput..

[14]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.