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.
Description
Compile-time meta-programming in a dynamically typed OO language
%0 Conference Paper
%1 Tratt:2005:CMD
%A Tratt, Laurence
%B Proceedings of the 2005 Symposium on Dynamic Languages
%D 2005
%I ACM
%K Compilation CompileTime Converge DLS MetaProgramming
%P 49--63
%R 10.1145/1146841.1146846
%T Compile-time Meta-programming in a Dynamically Typed OO Language
%X 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.
@inproceedings{Tratt:2005:CMD,
abstract = {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.},
acmid = {1146846},
added-at = {2014-08-10T12:34:49.000+0200},
author = {Tratt, Laurence},
biburl = {https://www.bibsonomy.org/bibtex/297a9985ddfbcadbffe447ba73797e3d2/gron},
booktitle = {Proceedings of the 2005 Symposium on Dynamic Languages},
description = {Compile-time meta-programming in a dynamically typed OO language},
doi = {10.1145/1146841.1146846},
interhash = {73ade61e93e9d51c438227ba95e48d8a},
intrahash = {97a9985ddfbcadbffe447ba73797e3d2},
keywords = {Compilation CompileTime Converge DLS MetaProgramming},
location = {San Diego, California},
numpages = {15},
pages = {49--63},
publisher = {ACM},
series = {DLS '05},
timestamp = {2014-08-10T12:34:49.000+0200},
title = {Compile-time Meta-programming in a Dynamically Typed OO Language},
year = 2005
}