ACM Home Page
Please provide us with feedback. Feedback
Intensional polymorphism in type-erasure semantics
Full text PdfPdf (1.27 MB)
Source International Conference on Functional Programming archive
Proceedings of the third ACM SIGPLAN international conference on Functional programming table of contents
Baltimore, Maryland, United States
Pages: 301 - 312  
Year of Publication: 1998
ISBN:1-58113-024-4
Also published in ...
Authors
Karl Crary  Cornell University
Stephanie Weirich  Cornell University
Greg Morrisett  Cornell University
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 24,   Citation Count: 39
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/289423.289459
What is a DOI?

ABSTRACT

Intensional polymorphism, the ability to dispatch to different routines based on types at run time, enables a variety of advanced implementation techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, polymorphic marshalling, and flattened data structures. To date, languages that support intensional polymorphism have required a type-passing (as opposed to type-erasure) interpretation where types are constructed and passed to polymorphic functions at run time. Unfortunately, type-passing suffers from a number of drawbacks: it requires duplication of constructs at the term and type levels, it prevents abstraction, and it severely complicates polymorphic closure conversion.We present a type-theoretic framework that supports intensional polymorphism, but avoids many of the disadvantages of type passing. In our approach, run-time type information is represented by ordinary terms. This avoids the duplication problem, allows us to recover abstraction, and avoids complications with closure conversion. In addition, our type system provides another improvement in expressiveness; it allows unknown types to be refined in place thereby avoiding certain beta-expansions required by other frameworks.


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
 
3
R. L. Constable. Intensional analysis of functions and types. Technical Report CSR-118-82, Department of Computer Science, University of Edinburgh, June 1982.
4
 
5
6
 
7
 
8
J.-Y. Girard. Une extension de l'interprdtation de GSdel ~ l'analyse, et son application ~ l'~limination de coupures dans l'analyse et la th~orie des types. In J. E. Fenstad, editor, Proceedings of the Second Scandinavian Logic Symposium,, pages 63-92. North-Holland Publishing Co., 1971.
 
9
J.-Y. Girard. Interprdtation fonctionelle et dlimination des coupures de l'arithmdtique d'ordre sup&'ieur. PhD thesis, Universit6 Paris VII, 1972.
10
11
 
12
13
 
14
Y. Minamide. Full lifting of type parameters. Submitted for publication. Earlier version published as "Compilation Based on a Calculus for Explicit Type-Passing" in the Second Fuji International Workshop on Functional and Logic Programming, 1996.
15
16
 
17
G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, School of Computer Science, Pittsburgh, Pennsylvania, Dec. 1995.
18
 
19
 
20
G. Morrisett, D. Tarditi, P. Cheng, C. Stone, R. Harper, and P. Lee. The TIL/ML compiler: Performance and safety through types. In Workshop on Compiler Support for Systems Software, Tucson, Feb. 1996.
21
 
22
J. C. Reynolds. Types, abstraction and parametric polymorphism. In Information Processing '83, pages 513-523. North-Holland, 1983. Proceedings of the IFIP 9th World Computer Congress.
23
 
24
25
 
26
Z. Shao. An overview of the FLINT/ML compiler. In I997 Workshop on Types in Compilation, Amsterdam, June 1997. ACM SIGPLAN. Published as Boston College Computer Science Department Technical Report BCCS-97-03.
27
28

CITED BY  39

Collaborative Colleagues:
Karl Crary: colleagues
Stephanie Weirich: colleagues
Greg Morrisett: colleagues