ACM Home Page
Please provide us with feedback. Feedback
Polymorphic type inference and abstract data types
Full text PdfPdf (1.22 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 16 ,  Issue 5  (September 1994) table of contents
Pages: 1411 - 1430  
Year of Publication: 1994
ISSN:0164-0925
Authors
Konstantin Läufer  Loyola Univ., Chicago, IL
Martin Odersky  Univ. Karlsruhe, Karlsruhe, Germany
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 55,   Citation Count: 17
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/186025.186031
What is a DOI?

ABSTRACT

Many statically typed programming languages provide an abstract data type construct, such as the module in Modula-2. However, in most of these languages, implementations of abstract data types are not first-class values. Thus, they cannot be assigned to variables, passed as function parameters, or returned as function results. Several higher-order functional languages feature strong and static type systems, parametric polymorphism, algebraic data types, and explicit type variables. Most of them rely on Hindley-Milner type inference instead of requiring explicit type declarations for identifiers. Although some of these languages support abstract data types, it appears that none of them directly provides light-weight abstract data types whose implementations are first-class values. We show how to add significant expressive power to statically typed functional languages with explicit type variables by incorporating first-class abstract types as an extension of algebraic data types. Furthermore, we extend record types to allow abstract components. The components of such abstract records are selected using the dot notation. Following Mitchell and Plotkin, we formalize abstract types in terms of existentially quantified types. We give a syntactically sound and complete type inference algorithm and prove that our type system is semantically sound with respect to standard denotational semantics.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
CARDELLI, L. AND LEROY, X. 1990. Abstract types and the dot notation. In Proceedings of the IFIP Working Conference on Programming Concepts and Methods (Sea of Galilee, Israel). IFIP, 466-49t.
3
4
 
5
DAMAS, L. 1985. Type assignment in programming languages. Ph.D. thesis, Univ. of Edinburgh, Edinburgh, Scotland.
6
 
7
HARPER, R. 1990. Introduction to Standard ML. Tech. Rep., School of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pa.
8
9
 
10
 
11
12
 
13
LEROY, X. AND MAUNY, M. 1992. The Carol Light System, Release 0.5, Documentation and User's Manual. Sept. Distributed with the Carol Light system.
 
14
15
 
16
17
 
18
19
20
21
 
22
ODERSKY, M. 1991. Objects and subtyping in a functional perspective. Tech. Rep. RC 16423, IBM, T. J. Watson Research Center, Yorktown Heights, N.Y.
 
23
PERRY, N. 1990. The implementation of practical functional programming languages. Ph.D. thesis, Imperial College, London, U.K.
 
24
PIERCE, B. AND TURNER, D. 1993. Simple type-theoretic foundations for object-oriented programming. J. Functional Program. (April). To be published.
 
25
PLOTKIN, G. 1983. Domains. Course notes. TeX-ed edition.
 
26
27
 
28

CITED BY  17

Collaborative Colleagues:
Konstantin Läufer: colleagues
Martin Odersky: colleagues