• Corpus ID: 16607287

On the Denotational Semantics of Staged Execution of Open Code

  title={On the Denotational Semantics of Staged Execution of Open Code},
  author={Andrew M. Pitts and Tim Sheard},
The functional meta-programming language MetaML of Sheardet al contains explicit staging constructs for generating and executing code. It provides a much finer control over the order of computation than traditional languages with fixed-evaluation strategies. This paper presen ts a novel denotational semantics for untyped MetaML that provides a remarkably simple treatment of two semantically problematic aspects of the language: computation involves substitution of open code values within the… 

Figures from this paper

On a monadic semantics for freshness

The lambda-context Calculus

Evolving Domain Specific Languages Project Summary

  • Computer Science
  • 2007
The DSLs that the authors have designed are experimental: their designs vary week-by-week as researchers try out new ideas, their implementations must be malleable, and efficiency and the quality of the error messages are less important.

A new calculus of contexts

It is shown that contexts (terms with holes) can encode programming constructs apparently unrelated to contexts, including objects and algorithms in partial evaluation, and the limitations of the calculus are explored.

Reasoning About Staged Programs

Reasoning About Staged Programs



Multi-Stage Programming: Its Theory and Applications

The thesis is that MetaML's three staging annotations provide a useful, theoretically sound basis for building program generators, and two formulations ofMetaML's semantics, a type system for MetaML, and a proposal for extending MetaML with atype construct for closedness.

LCF Considered as a Programming Language

Meta-programming with names and necessity

A novel way to achieve this is presented, based on adding the notion of names from the work on Nominal Logic and FreshML to the λ -calculus of proof terms for the necessity fragment of modal logic S4, which provides a more fine-grained control over free variables of object programs when compared to the existing languages for meta-programming.

FreshML: programming with binders made simple

This paper is to show that a standard type system without freshness inference suffices for FreshML's crucial correctness property that values of datatypes involving binders are operationally equivalent if and only if they represent a-equivalent pieces of object-level syntax.

Categorical models for local names

  • I. Stark
  • Computer Science
    LISP Symb. Comput.
  • 1996
This paper describes the construction of categorical models for thenu-calculus, a language that combines higher-order functions with dynamically creatednames, and how these provide a sound denotational semantics for the nu-Calculus and can be used to reason about observable equivalence in the language.

DyC: an expressive annotation-directed dynamic compiler for C

A New Approach to Abstract Syntax with Variable Binding

Inductively defined FM-sets involving the name-abstraction set former can correctly encode syntax modulo renaming of bound variables, and the standard theory of algebraic data types can be extended to encompass signatures involving binding operators.

From Interpreter to Compiler and Virtual Machine: A Functional Derivation

It is shown how to derive a compiler and a virtual machine from a compositional interpreter and the derivation provides a non-trivial illustration of Reynolds's warning about the evaluation order of a meta-language.

C and tcc: a language and compiler for dynamic code generation

The article presents many examples of how 'C can be used to solve practical problems; in some aplications, it is most important to generate code quickly, while in others code quality matters more than compilation speed.