ACM Home Page
Please provide us with feedback. Feedback
Domain specific language implementation via compile-time meta-programming
Full text PdfPdf (234 KB)
Source
ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 30 ,  Issue 6  (October 2008) table of contents
Article No. 31  
Year of Publication: 2008
ISSN:0164-0925
Author
Laurence Tratt  Bournemouth University, Dorset, United Kingdom
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 47,   Downloads (12 Months): 432,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1391956.1391958
What is a DOI?

ABSTRACT

Domain specific languages (DSLs) are mini-languages that are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this article, I show how expressive DSLs can be hygienically embedded in the Converge programming language using its compile-time meta-programming facility, the concept of DSL blocks, and specialised error reporting techniques. By making use of pre-existing facilities, and following a simple methodology, DSL implementation costs can be significantly reduced whilst leading to higher quality DSL implementations.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Aycock, J. and Horspool, R. N. 2002. Practical Earley parsing. The Computer Journal 45, 6, 620--630.
 
3
Bachrach, J. and Playford, K. 1999. D-expressions: Lisp power, Dylan style. http://www.ai.mit.edu/people/jrb/Projects/dexprs.pdf Accessed Nov 22 2006.
4
5
6
7
 
8
Cordy, J. R. 2004. TXL—A language for programming language tools and applications. In Proceedings of the ACM 4th International Workshop on Language Descriptions, Tools and Applications. ACM, New York.
 
9
Czarnecki, K., O'Donnell, J., Striegnitz, J., and Taha, W. 2004. DSL implementation in MetaOCaml, Template Haskell, and C++. 3016, 50--71.
 
10
11
 
12
Fleutot, F. and Tratt, L. 2007. Contrasting compile-time meta-programming in Metalua and Converge. In Proceedings of the Workshop on Dynamic Languages and Applications.
 
13
 
14
Grimm, R. 2005. Systems need languages need systems! 2nd ECOOP Workshop on Programming Languages and Operating Systems.
 
15
 
16
17
 
18
Mernik, M., Heering, J., and Sloane, A. M. 2003. When and how to develop domain-specific languages. Tech. rep., Centrum voor Wiskundeen Informatica. Dec.
 
19
Schröer, F. W. 2005. The ACCENT Grammar Language. http://accent.compilertools.net/language.html Accessed Jan 25 2005.
 
20
Seefried, S., Chakravarty, M., and Keller, G. 2004. Optimising embedded DSLs using template Haskell. In Proceedings of the 3rd International Conference on Generative Programming and Component Engineering (Vancouver, BC Canada). Springer-Verlag, New York, 186--205.
 
21
Sheard, T. 1998. Using MetaML: A staged programming language. Adv. Funct. Prog., 207--239.
 
22
23
24
 
25
Skalski, K., Moskal, M., and Olszta, P. 2004. Meta-programming in Nemerle. http://nemerle.org/metaprogramming.pdf. Accessed Nov 5 2007.
 
26
27
 
28
Tratt, L. 2005b. The Converge programming language. Tech. Rep. TR-05-01, Department of Computer Science, King's College London.
 
29
Tratt, L. 2005c. The MT model transformation language. Tech. Rep. TR-05-02, Department of Computer Science, King's College London. May.
 
30
Tratt, L. 2007. Converge Reference Manual. http://www.convergepl.org/documentation/Accessed June 3 2008.
31
32
 
33
van Rossum, G. 2003. Python 2.3 reference manual. http://www.python.org/doc/2.3/ref/ref.html Accessed June 3 2008.
 
34
Walker, K. 1994. The run-time implementation language for Icon. Tech. Rep. IPD261, University of Arizona.
35
36