@inbook {DBLP:conf/dagstuhl/CzarneckiOST03, title = {DSL Implementation in MetaOCaml, Template Haskell, and C++}, booktitle = {Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers}, series = {Lecture Notes in Computer Science}, volume = {3016}, year = {2003}, pages = {51-72}, publisher = {Springer-Verlag}, organization = {Springer-Verlag}, address = {Berlin, Heidelberg}, abstract = {A wide range of domain-specific languages (DSLs) has been implemented successfully by embedding them in general purpose lan- guages. This paper reviews embedding, and summarizes how two alternative techniques {\textendash} staged interpreters and templates {\textendash} can be used to overcome the limitations of embedding. Both techniques involve a form of generative programming. The paper reviews and compares three pro- gramming languages that have special support for generative programming. Two of these languages (MetaOCaml and Template Haskell) are research languages, while the third (C++) is already in wide industrial use. The paper identifies several dimensions that can serve as a basis for comparing generative languages.}, doi = {10.1007/b98156}, url = {http://www.springerlink.com/content/nl620el7n94m161h/fulltext.pdf}, author = {Krzysztof Czarnecki and O{\textquoteright}Donnell, John, T. and Striegnitz, J{\"o}rg and Taha, Walid} }