ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Obtaining coroutines with continuations
Computer Languages
Information and Computation - Semantics of Data Types
Polymorphic type inference and containment
Information and Computation - Semantics of Data Types
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extracting &ohgr;'s programs from proofs in the calculus of constructions
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic typing in a statically-typed language
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Continuation-passing, closure-passing style
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The definition of Standard ML
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typing first-class continuations in ML
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphic type inference and assignment
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference for polymorphic references
Information and Computation
Logical foundations of functional programming
Logical foundations of functional programming
Compiling with continuations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the type structure of standard ML
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the undecidability of partial polymorphic type reconstruction
Fundamenta Informaticae - Special issue: lambda calculus and type theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
LEAP: A Language with Eval And Polymorphism
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Continuation Semantics in Typed Lambda-Calculi (Summary)
Proceedings of the Conference on Logic of Programs
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
First-Class Synchronous Operations in Standard ML
First-Class Synchronous Operations in Standard ML
Rabbit: A Compiler for Scheme
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
Extracting constructive content from classical proofs
Extracting constructive content from classical proofs
Polymorphism by name for references and continuations
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
CPS translating inductive and coinductive types
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A type system for certified binaries
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From control effects to typed continuation passing
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CPS Translations and Applications: The Cube and Beyond
Higher-Order and Symbolic Computation
Intensional analysis of quantified types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Secure Information Flow and CPS
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Explicitly Typed lambda µ-Calculus for Polymorphism an Call-by-Value
TLCA '99 Proceedings of the 4th International Conference on Typed Lambda Calculi and Applications
Type Structure for Low-Level Programming Languages
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
A type system for the push-enter model
Information Processing Letters
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Monadic encapsulation of effects: a revised approach (extended version)
Journal of Functional Programming
TIL: a type-directed, optimizing compiler for ML
ACM SIGPLAN Notices - Best of PLDI 1979-1999
A type system for certified binaries
ACM Transactions on Programming Languages and Systems (TOPLAS)
An operational semantics for scheme1
Journal of Functional Programming
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Polymorphic delimited continuations
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
An equivalence-preserving CPS translation via multi-language semantics
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
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.