ACM Home Page
Please provide us with feedback. Feedback
Explicit polymorphism and CPS conversion
Full text PdfPdf (1.34 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Charleston, South Carolina, United States
Pages: 206 - 219  
Year of Publication: 1993
ISBN:0-89791-560-7
Authors
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 18,   Citation Count: 20
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/158511.158630
What is a DOI?

ABSTRACT

We study the typing properties of CPS conversion for an extension of F&ohgr; with control operators. Two classes of evaluation strategies are considered, each with call-by-name and call-by-value variants. Under the “standard” strategies, constructor abstractions are values, and constructor applications can lead to non-trivial control effects. In contrast, the “ML-like” strategies evaluate beneath constructor abstractions, reflecting the usual interpretation of programs in languages based on implicit polymorphism. Three continuation passing style sub-languages are considered, one on which the standard strategies coincide, one on which the ML-like strategies coincide, and one on which all strategies coincide. Compositional, type-preserving CPS transformation algorithms are given for the standard strategies, resulting in terms on which all evaluation strategies coincide. This has as a corollary the soundness and termination of well-typed programs under the standard evaluation strategies. A similar result is obtained for the ML-like call-by-name strategy. In contrast, such results are obtained for the call-by-name strategy. In contrast, such results are obtained for the call-by value ML-like strategy only for a restricted sub-language in which constructor abstractions are limited to values.


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
 
4
Luca Cardelli. Typeful programming. Technical Report 45, DEC SRC, 1989.
 
5
Eric C. Cooper and I. Gregory Morrisett. Adding threads to Standard ML. Technical Report CMU-CS-90-186, School of Computer Science, Carnegie Mellon University, December 1990.
 
6
 
7
Luis Manuel Martins Damas. Type Assignment in Programruing Languages. PhD thesis, Edinburgh University, 1985.
8
 
9
 
10
Matthias Felleisen and Daniel Friedman. Control opelators, the SECD machine, and the ,X-calculus. In FormalDescription of Programming Concepts IlL North-Holland, 1986.
 
11
Matthias FeUeisen, Daniel Friedman, Eugene Kohlbeckex; and Bruce Duba. Reasoning with continuations. In First Symposium on Logic in Computer Science. IEEE, June 1986.
12
 
13
Jean Gallier. On girard's "candidats de reductibilit6". In P. Odifreddi, editor, Logic and Computation, volume 31 of The APIC Series, pages 123-203. Academic Press, 1990.
 
14
Jean-Yves Girard. Interpretation Fonctionelle et l~limination des Coupures dans l'Arithn~tique d'Ordre Supdrieure. PhD thesis, Universit6 Paris VII, 1972.
 
15
Michael Gordon, Robin Milner, and Christopher Wadsworth. Edinburgh LCF: A Mechanized Logic of Computation, volume 78 of Lecture Notes in Computer Science. Springer- Verlag, 1979.
16
 
17
Timothy G. Griffin. Logical interpretations and computational simulations. Tech. memo., AT&T Bell Laboratories, 1992. in preparation.
 
18
Robert Harper, Bruce Duba, and David MacQueen. Typing first-class continuations in ML. Revised and expandedversion of {8}. To appear, Journal of Functional Programming.
 
19
Robert Harper and Mark LiUibridge. Polymorphic type assignment and eps conversion. In Olivier Danvy and Carolyn Talcott, editors, Proceedings of the ACM SIGPLAN Workshop on Continuations CW92, pages 13-22, Stanford, CA 94305, June 1992. Department of Computer Science, Stanford University. Published as technical report STAN-CS-92-1426.
20
 
21
 
22
23
 
24
Xavier leroy. Polymorphism by name. In Twentieth ACM Symposium on Principles of Programming Languages, January 1993.
25
 
26
Zhaolui Luo, Robert Pollack, and Paul Taylor. How to use lego: A preliminary user's manual. Technical Report LFCS- TN-27, Laboratory for the Foundations of Computer Science, Edinburgh University, October 1989.
 
27
 
28
Robin Milner. A theory of type polymorphism in programming languages.Journal of Computer~andSystemSciences, 17:348- 375, 1978.
 
29
30
 
31
 
32
33
 
34
 
35
 
36
Gordon Plotldn. Call-by-name, call-by-value, and the lambda calculus. Theoretical Computer Science, 1:125-159, 1975.
 
37
38
 
39
 
40
John C. Reynolds. Types, abstraction, and parametric polymorphism. In R. E. A. Mason, editor, Information Processing '83, pages 513-523. Elsevier Science Publishers B. V., 1983.
 
41
 
42
 
43
Christopher Strachey and Christopher Wadsworth. A mathematical semantics for handling full jumps. Technical Report Technical Monograph PRG-11, Oxford University Computing Laboratory, 1974.
 
44
Muds ToRe. Operational Semantics and Polymorphic Type Inference. PhD thesis, FMinburgh University, 1988. Available as Edinburgh University Laboratory for Foundations of Computer Science Technical Report ECS--LFCS-88-54.
 
45
 
46
Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Technical Report TR91-160, Depaxtment of Computer Science, Rice University, July 1991. To appear, Information and Computation.

CITED BY  20

Collaborative Colleagues:
Robert Harper: colleagues
Mark Lillibridge: colleagues