Two-level functional languages
Two-level functional languages
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modal analysis of staged computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
An Automatic Program Generator for Multi-Level Specialization
Lisp and Symbolic Computation
Run-time code generation and modal-ML
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Multi-Stage Programming: Axiomatization and Type Safety
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
A temporal-logic approach to binding-time analysis
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
MetaML and Multi-Stage Programming with Explicit Annotations
MetaML and Multi-Stage Programming with Explicit Annotations
A Categorical Analysis of Multi-Level Languages (Extended Abstract)
A Categorical Analysis of Multi-Level Languages (Extended Abstract)
An Idealized MetaML: Simpler, and More Expressive
An Idealized MetaML: Simpler, and More Expressive
Managing Dynamic Changes in Multi-stage Program Generation Systems
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Tag Elimination and Jones-Optimality
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Reasoning about Staged Computation
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Multi-Stage Imperative Languages: A Conservative Extension Result
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Closed Types as a Simple Approach to Safe Imperative Multi-stage Programming
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
A Logical Foundation for Environment Classifiers
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
The lambda-context calculus (extended version)
Information and Computation
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Constructive linear-time temporal logic: Proof systems and Kripke semantics
Information and Computation
Staged computation with staged lexical scope
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Marco: safe, expressive macros for any language
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Type-specialized staged programming with process separation
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
MetaML is a multi-stage functional programming language featuring three constructs that can be viewed as statically-typed refinements of the back-quote, comma, and eval of Scheme. Thus it provides special support for writing code generators and serves as a semantically-sound basis for systems involving multiple interdependent computational stages. In previous work, we reported on an implementation of MetaML, and on a reduction semantics and type-system for MetaML. In this paper, we present An Idealized MetaML (AIM) that is the result of our study of a categorical model for MetaML. An important outstanding problem is finding a type system that provides the user with a means for manipulating both open and closed code. This problem has eluded efforts by us and other researchers for over three years. AIM solves the issue by providing two type constructors, one classifies closed code and the other open code, and exploiting the way they interact. We point out that AIM can be verbose, and outline a possible remedy relating to the strictness of the closed code type.