ACM Home Page
Please provide us with feedback. Feedback
Types as intervals
Full text PdfPdf (1.96 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
New Orleans, Louisiana, United States
Pages: 22 - 36  
Year of Publication: 1985
ISBN:0-89791-147-4
Author
Robert Cartwright  Computer Science Department, Rice University, Houston, TX
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 21,   Citation Count: 5
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/318593.318604
What is a DOI?

ABSTRACT

To accommodate polymorphic data types and operations, several computer scientists--most notably MacQueen, Plotkin, and Sethi--have proposed formalizing types as ideals. Although this approach is intuitively appealing, the resulting type system is both complex and restrictive because the type constructor that creates function types is not monotonic, and hence not computable. As a result, types cannot be treated as data values, precluding the formalization of type constructors and polymorphic program modules (where types are values) as higher order computable functions. Moreover, recursive definitions of new types do not necessarily have solutions. This paper proposes a new formulation of types--called intervals--that subsumes the theory of types as ideals, yet avoids the pathologies caused by non-monotonic type constructors. In particular, the set of interval types contains the set of ideal types as a proper subset and all of the primitive type operations on intervals are extensions of the corresponding operations on ideals. Nevertheless, all of the primitive interval type constructors including the function type constructor and type quantifiers are computable operations. Consequently, types are higher order data values that can be freely manipulated within programs. The key idea underlying the formalization of types as intervals is that negative information should be included in the description of a type. Negative information identifies the finite elements that do not belong to a type, just as conventional, positive information identifies the elements that do. Unless the negative information in a type description is the exact complement of the positive information, the description is partial in the sense that it approximates many different types--an interval of ideals between the positive information and the complement of the negative information. Although programmers typically deal with total (maximal) types, partial types appear to be an essential feature of a comprehensive polymorphic type system that accommodates types as data, just as partial functions are essential in any universal programming language.


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
[Bana22] Banach, S. "Sur les operations dans les ensembles abstraits et leurs applications aux equations integrales," Fund. Math. 3 (1922) pp. 7-33.
 
3
[Burs84] Burstall, R. and B. Lampson, The Cedar Kernel Language, unpublished draft, Xerox Palo Alto Research Center, 1984.
4
5
 
6
[Ende72] Enderton, H. B. A Mathematical Introduction to Logic. Academic Press, New York, 1972.
 
7
[Gier80] Gierz, G. et. al. A Compendium of Continuous Lottices. Springer-Verlag, Berlin, 1980.
 
8
[Gord77] Gordon, M., R. Milner and C. Wadsworth. Edinburgh LCF. CSR-11-77. Computer Science Department, Edinburgh University.
 
9
[Gutt78] Guttag, J. V. and J. J. Horning. The Algebraic Specification of Data Structures, Comm. ACM 20, 395- 404.
 
10
[Hind69] Hindley, R. The Principal Type Scheme of an Object of Combinatory Logic. Trans. AMS 146, pp. 29-60, (December 1969).
11
12
13
 
14
 
15
[Miln78] Milner, R. A Theory or Type Polymorphism for Programming, JCSS 17(3), pp. 348-375.
16
 
17
[plot78] Plotkin, G. T¿ as a Universal Domain. Journal of Computer and System Sciences 17 (1978), pp. 209-236.
 
18
 
19
[Scot76] Scott, D. Data Types as Lattices. SIAM J. Computing 5(1976), pp. 522-587.
 
20
[Scot81] Scott, D. Lectures on a Mathematical Theory of Computation. Technical Monograph PRG-19, Oxford University Computing Laboratory, Oxford.
 
21
[Scot83] Scott, D. Domains for Denotational Semantics. Technical Report, Computer Science Department, Carnegie-Mellon University, 1983.
 
22
 
23