M. Bravenboer and E. Visser.
Concrete Syntax for Objects. Domain-Specific Language Embedding and Assimilation without Restrictions. In D. C. Schmidt, editor, Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (
OOPSLA'04), pages 365--383, Vancouver, Canada, October 2004. ACM Press. (
pdf)
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
concrete syntax for domain
abstractions to application programmers. The method consists of
embedding domain-specific languages in a general purpose host
language and
assimilating 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.
Links
Bibtex
Moved Permanently
The document has moved here.
Apache Server at www.cs.uu.nl Port 80