Abstract
We examine three disparate views of the type structure of programming languages: Milner's type deduction system and polymorphic let construct, the theory of subtypes and generic operators, and the polymorphic or second-order typed lambda calculus. These approaches are illustrated with a functional language including product, sum and list constructors. The syntactic behavior of types is formalized with type inference rules, but their semantics is treated intuitively.
Work supported by National Science Foundation Grant MCS-8017577.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Guttag, J.V., and Horning, J.J., "The Algebraic Specification of Abstract Data Types", Acta Informatica 10 (1), 1978, pp. 27–52.
Goguen, J.A., Thatcher, J.W., and Wagner, E.G., "Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types", Current Trends in Programming Methodology, 4, Data Structuring, ed. R.T. Yeh, Prentice-Hall, Englewood Cliffs, 1978.
Kapur, D., "Towards a Theory for Abstract Data Types", Tech. Rep. TR-237, Laboratory for Computer Science, M.I.T., May 1980.
Coppo, M., and Dezani-Ciancaglini, M., "A New Type Assignment for λ-terms", Archive f. math. Logik u. Grundlagenforschung 19 (1979) 139–156.
Barendregt, H., Coppo, M., and Dezani-Ciancaglini, M., "A Filter Lambda Model and the Completeness of Type Assignment", to appear in the Journal of Symbolic Logic.
Martin-Lof, P., "Constructive Mathematics and Computer Programming", Proceedings of the Sixth (1979) International Congress for Logic, Methodology and Philosophy of Science, North-Holland, Amsterdam, 1979.
Constable, Robert L. and Zlatin, D.R., "The Type Theory of PL/CV3", ACM Transactions on Programming Languages and Systems, 6 (1984), 94–117.
Coquand, T., and Huet, G., "A Theory of Constructions", unpublished.
Burstall, R., and Lampson, B., "A Kernel Language for Abstract Data Types and Modules", Semantics of Data Types, eds. G. Kahn, D.B. MacQueen, and G. Plotkin, Lecture Notes in Computer Science 173, Springer-Verlag, Berlin (1984), pp. 1–50.
Reynolds, J.C., "The Essence of Algol", Algorithmic Languages, eds. J.W. de Bakker and J.C. van Vliet, North-Holland, 1981, pp. 345–372.
Oles, F.J., "A Category-Theoretic Approach to the Semantics of Programming Languages", Ph. D. dissertation, Syracuse University, August 1982.
Oles, F.J., "Type Algebras, Functor Categories, and Block Structure", Algebraic Methods in Semantics, eds. M. Nivat and J.C. Reynolds, Cambridge University Press (1985).
Henderson, P., and Morris, J.H., "A Lazy Evaluator". Proc. 3rd annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, Atlanta, 1976, 95–103.
Friedman, D.P., and Wise, D.S., "CONS Should not Evaluate its Arguments". In Automata, Languages and Programing, eds. Michaelson and Milner, Edinburgh University Press, 1976, 257–284.
Landin, P.J., "A Correspondence Between Algol 60 and Church's Lambda-Notation", Comm. ACM 8, (February–March 1965), pp. 89–101 and 158–165.
McCarthy, J., "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I", Comm. ACM 3 (April 1960), pp. 184–195.
MacQueen, D.B., and Sethi, R., "A Semantic Model of Types for Applicative Languages", ACM Symposium on LISP and Functional Programming, 1982, pp. 243–252.
McCracken, N., "An Investigation of a Programming Language with a Polymorphic Type Structure", Ph. D. dissertation, Syracuse University, June 1979.
McCracken, N.J., "A Finitary Retract Model for the Polymorphic Lambda-Calculus", submitted to Information and Control.
Reynolds, J.C., "Types, Abstraction and Parametric Polymorphism", Information Processing 83, ed. R.E.A. Mason, Elsevier Science Publishers B.V. (North-Holland) 1983, pp. 513–523.
Hindley, R., "The Principal Type-scheme of an Object in Combinatory Logic", Trans. Amer. Math. Society 146 (1969) 29–60.
Milner, R., "A Theory of Type Polymorphism in Programming", Journal of Computer and System Sciences 17 (1978), 348–375.
Robinson, J.A., "A Machine-oriented Logic Based on the Resolution Principle", JACM 12, 1 (1965), 23–41.
Strachey, C., "Fundamental Concepts in Programming Languages", Lecture Notes, International Summer School in Computer Programming, Copenhagen, August 1967.
Huet, G., "Resolution d'Équations dans des Langages d'Ordre 1,2,...,ω", doctoral thesis, University of Paris VII (September 1976).
Morris, F.L., "On List Structures and Their Use in the Programming of Unification", School of Computer and Information Science, Report 4–78, Syracuse University, 1978.
Reynolds, J.C., "Using Category Theory to Design Implicit Conversions and Generic Operators", Semantics-Directed Compiler Generation, Proceedings of a Workshop, Aarhus, Denmark, January 14–18, 1980, ed. N.D. Jones, Lecture Notes in Computer Science 94, Springer-Verlag, New York, pp. 211–258.
Goguen, J.A., "Order Sorted Algebras: Exceptions and Error Sorts, Coercions and Overloaded Operators", Semantics and Theory of Computation Report 14, Computer Science Department, UCLA (December 1978). To appear in Journal of Computer and Systems Science.
Cardelli, L., "A Semantics of Multiple Inheritance", Semantics of Data Types, eds. G. Kahn, D.B. MacQueen and G. Plotkin, Lecture Notes in Computer Science 173, Springer-Verlag, Berlin (1984), pp. 51–67.
Mitchell, J.C., and Plotkin, G.D., "Abstract Types Have Existential Type", Proc. 12th Annual ACM Symposium on Principles of Programming Languages, New Orleans, 1985.
Reynolds, J.C., "Towards a Theory of Type Structure, Proc. Colloque sur la Programmation, Lecture Notes in Computer Science 19, Springer-Verlag, New York, 1974, pp. 408–425.
Girard, J.-Y., "Interprétation Fonctionelle et Elimination des Coupures dans l'Arithmétique d'Ordre Supérieur", Thèse de Doctorat d'État, Paris, 1972.
Fortune, S., Leivant, D., and O'Donnell, M., "The Expressiveness of Simple and Second-Order Type Structures", Journal of the ACM 30, 1 (January 1983), pp. 151–185.
Leivant, D., "Reasoning About Functional Programs and Complexity Classes Associated with Type Disciplines", Twenty-fourth Annual Symposium on Foundation of Computer Science (1983) 460–469.
Böhm, C., and Berarducci, A., "Automatic Synthesis of Typed Λ-Programs on Term Algebras", submitted for publication.
Reynolds, J.C., "Polymorphism is not Set-Theoretic", Semantics of Data Types, eds. G. Kahn, D.B. MacQueen, and G. Plotkin, Lecture Notes in Computer Science 173, Springer-Verlag, Berlin (1984), pp. 145–156.
Leivant, D., "Polymorphic Type Inference", Proc. 10th Annual ACM Symposium on Principles of Programming Languages, Austin, 1983.
McCracken, N.J., "The Typechecking of Programs with Implicit Type Structure", Semantics of Data Types, eds. G. Kahn, D.B. MacQueen, and G. Plotkin, Lecture Notes in Computer Science 173, Springer-Verlag, Berlin (1984), pp. 301–315.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reynolds, J.C. (1985). Three approaches to type structure. In: Ehrig, H., Floyd, C., Nivat, M., Thatcher, J. (eds) Mathematical Foundations of Software Development. CAAP 1985. Lecture Notes in Computer Science, vol 185. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15198-2_7
Download citation
DOI: https://doi.org/10.1007/3-540-15198-2_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-15198-2
Online ISBN: 978-3-540-39302-3
eBook Packages: Springer Book Archive