ACM Home Page
Please provide us with feedback. Feedback
Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions
Full text PdfPdf (380 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Vancouver, BC, Canada
SESSION: Languages table of contents
Pages: 365 - 383  
Year of Publication: 2004
ISBN:1-58113-831-9
Also published in ...
Authors
Martin Bravenboer  Universiteit Utrecht, Utrecht, The Netherlands
Eelco Visser  Universiteit Utrecht, Utrecht, The Netherlands
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 24,   Downloads (12 Months): 166,   Citation Count: 24
Additional Information:

abstract   references   cited by   index terms   review   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/1028976.1029007
What is a DOI?

ABSTRACT

Application programmer's interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for expressing domain abstractions at the semantic level. However, they do not provide the right abstractions at the syntactic level. In this paper we describe MetaBorg, a method for providing <i>concrete syntax</i> for domain abstractions to application programmers. The method consists of <i>embedding</i> domain-specific languages in a general purpose host language and <i>assimilating</i> the embedded domain code into the surrounding host code. Instead of extending the implementation of the host language, the assimilation phase implements domain abstractions in terms of existing APIs leaving the host language undisturbed. Indeed, MetaBorg can be considered a method for promoting APIs to the language level. The method is supported by proven and available technology, i.e. the syntax definition formalism SDF and the program transformation language and toolset Stratego/XT. We illustrate the method with applications in three domains: code generation, XML generation, and user-interface construction.


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
A. Begel and S. L. Graham. Language analysis and tools for input stream ambiguities. In Proceedings of the Fourth Workshop on Language Descriptions, Tools and Applications (LDTA'04), Electronic Notes in Theoretical Computer Science, Barcelona, Spain, April 2004. Elsevier.
 
4
F. Bouma. LLBLGen Pro, the n-tier generator and O/R mapper for .NET. http://www.llblgen.com.
 
5
R. Bourret. XML data binding resources. http://www.rpbourret.com/xml/XMLDataBinding.htm.
6
 
7
C. Brabrand, M. I. Schwartzbach, and M. Vanggaard. The Metafront system: Extensible parsing and transformation. In Proceedings of the Third Workshop on Language Descriptions, Tools and Applications (LDTA'03), volume~82 of Electronic Notes in Theoretical Computer Science. Elsevier, December 2003. See also http://www.brics.dk/metafront/.
 
8
 
9
 
10
 
11
Byte code engineering library (BCEL). http://jakarta.apache.org/bcel/.
 
12
L. Cardelli. An implementation of F<:- SRC Research Report 97, Digital Equipment Corporation, Systems Research Center, February 1993.
 
13
L. Cardelli, F. Matthes, and M. Abadi. Extensible syntax with lexical scoping. SRC Research Report 121, Digital Equipment Corporation, Systems Research Center, February 1994.
 
14
Castor databinding framework for java. http://www.castor.org.
 
15
The Apache Cocoon project. http://cocoon.apache.org/.
 
16
H. de Jong and P. Olivier. Generation of abstract programming interfaces from syntax definitions. Journal of Logic and Algebraic Programming, 59(1-2):35--61, April-May 2004. See also http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ApiGen.
 
17
A. Deursenvan~Deursen, J. Heering, and P. Klint, editors. Language Prototyping. An Algebraic Specification Approach, volume 5 of AMAST Series in Computing. World Scientific, Singapore, September 1996.
18
 
19
B. Fischer and E. Visser. Retrofitting the AutoBayes program synthesis system with concrete object syntax. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science, pages 239--253. Spinger-Verlag, 2004.
 
20
21
 
22
23
 
24
Java Compiler Compiler (JavaCC). https://javacc.dev.java.net/.
 
25
Java architecture for XML binding JAXB. http://java.sun.com/xml/jaxb/.
 
26
M. Jongede Jonge, E. Visser, and J. Visser. XT: A bundle of program transformation tools. In M. G. J. van den Brand and D. Perigot, editors, Workshop on Language Descriptions, Tools and Applications (LDTA'01), volume 44 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, April 2001.
 
27
 
28
T. Kuipers and J. Visser. Object-oriented tree traversal with JJForester. In M. G. J. van den Brand and D. Perigot, editors, Proceedings of Workshop on Language Descriptions, Tools and Applications (LDTA'01), volume 44 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2001.
 
29
30
 
31
E. Meijer and W. Schulte. Programming with rectangles, triangles, and circles. In Proceedings of XML Conference & Exposition 2003 (XML 2003). IDEAlliance, December 2003.
 
32
E. Meijer and W. Schulte. Unifying tables, objects, and documents. In Proceedings of the Workshop on Declarative Programming in the Context of Object-Oriented Languages (DP-COOL'03), August 2003.
33
 
34
ASF+SDF MetaEnvironment website. http://www.cwi.nl/projects/MetaEnv/.
 
35
P.-E. Moreau, C. Ringeissen, and M. Vittek. A pattern matching compiler for multiple target languages. In G. Hedin, editor, 12th Conference on Compiler Construction (CC'03), volume 2622, pages 61--76, Warsaw, Poland, 2003. Springer-Verlag. See also http://tom.loria.fr.
 
36
J. Rekers. Parser Generation for Interactive Environments. PhD thesis, University of Amsterdam, 1992.
37
 
38
 
39
 
40
Y. Smaragdakis and D. Batory. Application generators. Encyclopedia of Electrical and Electronics Engineering, 2000. J.G. Webster (ed.), John Wiley and Sons.
 
41
 
42
K. Tao, W. Wang, and J. Palsberg. Java Tree Builder (JTB). http://www.cs.purdue.edu/jtb/.
 
43
 
44
E. Visser. Scannerless generalized-LR parsing. Technical Report P9707, Programming Research Group, University of Amsterdam, July 1997.
 
45
E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997.
 
46
 
47
E. Visser. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science, pages 216--238. Spinger-Verlag, June 2004.
48
49
50
 
51
The Xtatic project: Native XML processing for C#. http://www.cis.upenn.edu/~bcpierce/xtatic/.

CITED BY  24


REVIEW

"Matthew Mark Huntbach : Reviewer"

This paper describes the combined use of several tools for programming language manipulation, collectively given the name MetaBorg. This collection enables the syntax of a programming language to be extended. Although examples are given in Java, t  more...

Collaborative Colleagues:
Martin Bravenboer: colleagues
Eelco Visser: colleagues