• Corpus ID: 15707400

# A Gentle Introduction to Multi-stage Programming * Preliminary Draft

@inproceedings{Taha2003AGI,
title={A Gentle Introduction to Multi-stage Programming * Preliminary Draft},
author={Walid Taha},
year={2003}
}
Multi-stage programming (MSP) is a paradigm for developing generic software that does not pay a runtime penalty for this generality. This is achieved through concisely, carefully designed language extensions that support runtime code generation and program execution. Additionally, type systems for MSP languages are designed to statically ensure that dynamically generated programs are type safe (and therefore require no type checking after they are generated). This tutorial is aimed at the…

## References

SHOWING 1-10 OF 21 REFERENCES

• Computer Science
ICALP
• 2000
A general notion of closed type as a simple approach to safely introducing computational effects into multistage languages is proposed and demonstrated formally in a core language called Mini-MLrefBN, which combines safely multi-stage constructs and ML-style references.
• Computer Science
ICALP
• 1998
A multi-stage language is introduced and its axiomatic semantics is an extension of the call-by-value $\lambda$-calculus with staging constructs, and a proof of the soundness of this type system with respect to the reduction semantics is presented.
• L. Cardelli
• Computer Science
Formal Description of Programming Concepts
• 1989
It is shown how typeful programming is best supported by sophisticated type systems, and how these systems can help in clarifying programming issues and in adding power and regularity to languages.
• Computer Science
GPCE
• 2003
It is shown that defining the semantics of macros in this manner helps in developing and verifying not only type systems for macro languages but also equational reasoning principles.
• Computer Science
GPCE
• 2003
Current performance measurements reveal interesting characteristics of the underlying OCaml compiler, and illustrate why this strategy can be particularly useful for implementing domain-specific languages in a typed, functional setting.
• Computer Science
ICFP '01
• 2001
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".
• Computer Science
ESOP
• 1999
This paper presents An Idealized MetaML (AIM), the result of the study of a categorical model for MetaML, and points out that AIM can be verbose, and outlines a possible remedy relating to the strictness of the closed code type.
• Computer Science
POPL
• 2003
This paper proposes and develops the basic theory for a new approach to typing multi-stage languages based a notion of environment classifiers. This approach involves explicit but lightweight
• Computer Science
Inf. Comput.
• 1994
A new approach to proving type soundness for Hindley/Milner-style polymorphic type systems by an adaptation of subject reduction theorems from combinatory logic to programming languages and the use of rewriting techniques for the specification of the language semantics is presented.
• Computer Science
Prentice Hall international series in computer science
• 1993
This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.