Multi-stage programming languages provide a convenient notation for explicitly staging programs. Staging a definitional interpreter for a domain specific language is one way of deriving an implementation that is both readable and efficient. In an untyped setting, staging an interpreter "removes a complete layer of interpretive overhead", just like partial evaluation. In a typed setting however, Hindley-Milner type systems do not allow us to exploit typing information in the language being interpreted. In practice, this can have a slowdown cost factor of three or more times.
|
544
|
A framework for defining logics
– Harper, Honsell, et al.
- 1993
|
|
431
|
Lambda Calculi with Types
– Barendregt
- 1992
|
|
415
|
A syntactic approach to type soundness
– Wright, Felleisen
- 1994
|
|
224
|
Definitional interpreters for higher-order programming languages
– Reynolds
- 1972
|
|
221
|
Dependent types in practical programming
– Xi, Pfenning
- 1999
|
|
174
|
MetaML and multi-stage programming with explicit annotations
– Taha, Sheard
|
|
168
|
Logic programming in the LF logical framework
– Pfenning
- 1991
|
|
161
|
A modal analysis of staged computation
– Davies, Pfenning
|
|
149
|
Eliminating array bound checking through dependent types
– Xi, Pfenning
- 1998
|
|
147
|
Principals of Programming Languages
– Tennent
- 1981
|
|
131
|
Semantics of Programming Languages
– Gunter
- 1992
|
|
131
|
Separate compilation for Standard ML
– Appel, MacQueen
- 1994
|
|
129
|
Basic Category Theory for Computer Scientists
– Pierce
- 1993
|
|
127
|
Inductive definitions in the system Coq: Rules and properties. Pages 328–345 of: International conference on typed lambda calculi and applications, tlca ’93
– Paulin-Mohring
- 1993
|
|
113
|
Intensional polymorphism in type erasure semantics
– Crary, Weirich, et al.
- 2002
|
|
90
|
Proving the correctness of reactive systems using sized types
– Hughes, Pareto, et al.
- 1996
|
|
81
|
Ressource bound certification
– Crary, Weirich
- 2000
|
|
69
|
Multi-stage programming: Its theory and applications
– Taha
- 1999
|
|
68
|
A type system for certified binaries
– Shao, Saha, et al.
- 2002
|
|
67
|
Flexible type analysis
– Crary, Weirich
- 1999
|
|
65
|
Inductive sets and families in Martin-Löf’s type theory and their set-theoretic semantics
– Dybjer
- 1991
|
|
63
|
Building domain-specific embedded languages
– Hudak
- 1996
|
|
61
|
Modular domain specific languages and tools
– Hudak
- 1998
|
|
52
|
Inductive families
– Dybjer
- 1994
|
|
45
|
A general formulation of simultaneous inductive-recursive definitions in type theory
– Dybjer
- 1997
|
|
41
|
Fully reflexive intensional type analysis
– Trifonov, Saha, et al.
- 2000
|
|
30
|
Multi-stage programming: Axiomatization and type-safety
– Taha, Benaissa, et al.
- 1998
|
|
28
|
Little languages
– Bentley
- 1986
|
|
27
|
An idealized MetaML: Simpler, and more expressive
– Moggi, Taha, et al.
- 1999
|
|
27
|
LEAP: A language with eval and polymorphism
– Pfenning, Lee
- 1989
|
|
26
|
A sound reduction semantics for untyped CBN multi-stage computation
– Taha
- 2000
|
|
24
|
Distil: A transformation library for data structures
– Smaragdakis, Batory
- 1997
|
|
18
|
On Jones-optimal specialization for strongly typed languages
– Makholm
- 2000
|
|
17
|
Graduate Institute Technical Reports
– Oregon
|
|
17
|
Tag elimination and Jones-optimality
– Taha, Makholm, et al.
|
|
16
|
An exercise in dependent types: A well-typed interpreter
– Augustsson, Carlsson
- 1999
|
|
16
|
Microlanguages for Operating System Specialization
– Pu, Black, et al.
- 1997
|
|
15
|
Phase distinctions in type theory. (Unpublished manuscript.) Available online from http://www.luca.demon.co.uk/Bibliography.html
– Cardelli
- 1988
|
|
15
|
Programming in Martin-Löf’s Type Theory, volume 7
– Nordström, Petersson, et al.
- 1990
|
|
15
|
Dynamic typing through staged type inference
– Shields, Sheard, et al.
- 1998
|
|
11
|
A tutorial on recursive types in Coq
– Giménez
- 1998
|
|
10
|
Tag elimination - or - type specialisation is a type-indexed effect
– Taha, Makholm
- 2000
|
|
8
|
Inherited limits
– Mogensen
- 1999
|
|
7
|
Björn von Sydow. Type theory and programming
– Coquand, Nordström, et al.
- 1994
|
|
7
|
Finite axiomatizations of inductive and inductive-recursive definitions
– Dybjer, Setzer
- 1998
|
|
7
|
Programming in Constructive SetTheory: Some Examples
– Nordstrom
|
|
7
|
Directions in functional programming for real(-time) applications
– Taha, Hudak, et al.
|
|
6
|
Inductively defined sets in Martin-Lof's set theory
– Dybjer
- 1987
|
|
5
|
Compiling polymorphism using intentional type analysis
– Harper, Morrisett
- 1995
|
|
3
|
Zine El-Abidine Benaissa, and Emir Paˇsalić. DSL implementation using staging and monads
– Sheard
- 1999
|