DSL implementation using staging and monads
Proceedings of the 2nd conference on Domain-specific languages
Programming Ruby: the pragmatic programmer's guide
Programming Ruby: the pragmatic programmer's guide
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The Java syntactic extender (JSE)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Maya: multiple-dispatch syntax extension in Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A Theory of Objects
The ICON Programming Language
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Science of Computer Programming
Science of Computer Programming
Domain specific language implementation via compile-time meta-programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generative and Transformational Techniques in Software Engineering II
Experiences with an icon-like expression evaluation system
Proceedings of the 6th symposium on Dynamic languages
Program logics for homogeneous meta-programming
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Backstage Java: making a difference in metaprogramming
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Supporting compile-time debugging and precise error reporting in meta-programs
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Self model-driven engineering through metaprograms
Proceedings of the 17th Panhellenic Conference on Informatics
Submodules in racket: you want it when, again?
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Compile-time meta-programming allows programs to be constructed by the user at compile-time. Although LISP derived languages have long had such facilities, few modern languages are capable of compile-time meta-programming, and of those that do many of the most powerful are statically typed functional languages. In this paper I present the dynamically typed object orientated language Converge which allows compile-time meta-programming in the spirit of Template Haskell. Converge demonstrates that integrating powerful, safe compile-time meta-programming features into a dynamic language requires few restrictions to the flexible development style facilitated by the paradigm. In this paper I detail Converge's compile-time meta-programming facilities, much of which is adapted from Template Haskell, contain several features new to the paradigm. Finally I explain how such a facility might be integrated into similar languages.