ACM Home Page
Please provide us with feedback. Feedback
Assimilating MetaBorg:: embedding language tools in languages
Full text PdfPdf (175 KB)
Source Generative Programming And Component Engineering archive
Proceedings of the 5th international conference on Generative programming and component engineering table of contents
Portland, Oregon, USA
SESSION: Staging table of contents
Pages: 21 - 28  
Year of Publication: 2006
ISBN:1-59593-237-2
Author
Jonathan Riehl  University of Chicago
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 46,   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/1173706.1173710
What is a DOI?

ABSTRACT

The MetaBorg usage pattern allows concrete syntax to be associated with application programmer interfaces (API's). Once a concrete syntax is defined, library writers use the Stratego language to write transformations from the concrete syntax to API data and calls in the host language. The result is a compile time translator from the combined host and domain languages to the host language. This translator is not programmable at compile time, and little or none of the infrastructure can be leveraged by a program at run time.These limitations make the MetaBorg pattern difficult or impractical to use in interactive programming. One possibility for adding interactivity to language assimilation is the application of the MetaBorg pattern to Stratego/XT itself. Assimilating language tools into languages, especially dynamic languages, better serves incremental and interactive development. Furthermore, language tool assimilation allows experimentation with language extension at compiler-compile time, compile time, load time and run time.This paper looks at language tool assimilation and makes three contributions. First, it introduces the domain-specific optimization use case as an additional problem that Stratego and related technology might solve. Second, it "partially evaluates" the MetaBorg pattern on the domain-specific languages used in Stratego/XT. Third, and finally, it generalizes the result of the MetaBorg partial evaluation, identifying several applications and application strategies.


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
 
3
Martin Bravenboer, Rob Vermaas, Jurgen Vinju, and Eelco Visser. Generalized type-based disambiguation of meta programs with concrete object syntax. In Robert Glück and Mike Lowry, editors, Proceedings of the Fourth International Conference on Generative Programming and Component Engineering (GPCE'05), volume 3676 of Lecture Notes in Computer Science, pages 157--172, Tallin, Estonia, September 2005. Springer.
4
 
5
 
6
Jason Eckhardt, Roumen Kaiabachev, Emir Pasalic, Kedar~N. Swadi, and Walid Taha. Implicitly heterogeneous multi-stage programming. In GPCE, pages 275--292, 2005.
7
8
 
9
Robert Grimm. xtc: Making C Safely Extensible, August 2004. Available at http://www.cs.nyu.edu/rgrimm/papers/dslopt04.pdf.
10
 
11
12
 
13
Simon Peyton-Jones, Andrew Tolmach, and Tony Hoare. Playing by the rules: Rewriting as a practical optimisation technique in GHC. In Ralf Hinze, editor, Preliminary Proceedings of the 2001 ACM SIGPLAN Haskell Workshop (HW '01), pages 203--233, Firenze, Italy, September 2001.
 
14
Programming Languages Team. PLT Scheme. http://www.plt-scheme.org/.
 
15
Jonathan Riehl. Python Enhancement Proposal PEP 269 -- Pgen Module for Python, 2001. http://www.python.org/dev/peps/pep-0269/.
 
16
Brian Cantwell Smith. Reflection and Semantics in a Procedural Language. PhD thesis, Massachusetts Institute of Technology, January 1982.
17
 
18
Standard ML of New Jersey. The SMLofNJ structure, December 1997. http://www.smlnj.org/doc/SMLofNJ/pages/smlnj.html.
 
19
 
20
Sun Microsystems. JVMTM Tool Interface (JVM TI), 2004. http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/.
 
21
Walid Taha. A gentle introduction to multi-stage programming. In Domain-Specific Program Generation, pages 30--50, 2003.
 
22
Eelco Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997.
23