Share This Author
The essence of compiling with continuations
The combined effect of the three phases is equivalent to a source-to-source transformation that simulates the compaction phase and fully developed CPS compilers do not need to employ the CPS transformation but can achieve the same results with a simple source-level transformation.
Proving the correctness of reactive systems using sized types
A type-based analysis is designed and implemented for proving some basic properties of reactive systems and an appropriate semantic model of sized types is developed to establish the soundness of the analysis.
Reasoning about programs in continuation-passing style
Plotkin's λv-calculus for call-by-value programs is weaker than the λβη-calculus for the same programs in continuation-passing style (CPS). To identify the call-by-value axioms that correspond to βη…
Reasoning about programs in continuation-passing style.
A new, compactifying CPS transformation and an “inverse”mapping, un-CPS, both of which are interesting in their own right are defined, which can determine the precise language of CPS terms closed under β7eegr;-transformations.
A reflection on call-by-value
The computational lambda calculus is put forward as a model of call-by-value computation that improves on the traditional call- by-value calculus and strengthens Plotkin and Moggi's original results and improves on recent work based on equational correspondence.
A monadic framework for delimited continuations
It is shown that standard CPS is sufficient to explain the common control operators for delimited continuations, and an implementation as a Scheme library is presented, which results in a monadic framework for typed and encapsulated delimite continuations.
A type-and-effect system is structured as an arrow metalanguage that exposes creation and erasure of information as explicit effect operations and sketches several applications which can benefit from an explicit treatment of information effects, including quantitative information-flow security and differential privacy.
A reflection on call-by-value
It is suggested that the appropriate relation between the source and target calculi may be captured by a special case of a Galois connection known as a reflection, and thereby strengthen a number of results in the literature.
Extensible effects: an alternative to monad transformers
A library that solves the long-standing problem of combining effects without imposing restrictions on their interactions (such as static ordering), allowing for practical idioms that are inefficient, cumbersome, or outright impossible with monad transformers.
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
This paper develops and presents MacroML, an extension of ML that supports inlining, recursive macros, and the definition of new binding constructs, and shows that MacroML is stage- and type-safe: macro expansion does not depend on runtime evaluation, and both stages do not "go wrong".