On the expressive power of programming languages
ESOP '90 Selected papers from the symposium on 3rd European symposium on programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
On abstraction and the expressive power of programming languages
TACS'91 Selected papers of the conference on Theoretical aspects of computer software
Embedding as a tool for language comparison
Information and Computation
Subrecursive programming systems: complexity & succinctness
Subrecursive programming systems: complexity & succinctness
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Programming in an Interactive Environment: the ``Lisp'' Experience
ACM Computing Surveys (CSUR)
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
On compiling embedded languages in LISP
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Active libraries and universal languages
Active libraries and universal languages
Hi-index | 0.00 |
We study embeddings of programming languages into one another that preserve what reductions take place at compile-time, i.e., staging. A certain condition -- what we call a 'Turing complete kernel' -- is sufficient for a language to be stage-universal in the sense that any language may be embedded in it while preserving staging. A similar line of reasoning yields the notion of safety-preserving embeddings, and a useful characterization of safety-universality. Languages universal with respect to staging and safety are good candidates for realizing domain-specific embedded languages (DSELs) and 'active libraries' that provide domain-specific optimizations and safety checks.