DSAL = library+notation: Program Transformation for Domain-Specific Aspect Languages

Anya Helene Bagge and Karl Trygve Kalleberg

Citation:

Anya Helene Bagge and Karl Trygve Kalleberg. DSAL = library+notation: Program Transformation for Domain-Specific Aspect Languages. In Thomas Cleenewerck et al, editor(s), Proceedings of the Domain-Specific Aspect Languages Workshop, pages 1–8. DSAL, 2006.

Workshop:

Domain-Specific Aspect Languages Workshop, Portland, Oregon, USA, 2006

Paper Links:

[pdf]

Abstract:

Domain-specific languages (DSLs) can greatly ease program development compared to general-purpose languages, but the cost of implementing a domain-specific language can be prohibitively high compared to the perceived benefit. This is more pronounced for narrower domains, and perhaps most acute for domain-specific aspect languages (DSALs).

A common technique for implementing a DSL is writing a software library in an existing programming language. Although this does not have the same syntactic appeal and possibilities as a full implementation, it is a technique familiar to most programmers, and it can be done cheaply compared to developing a full DSL compiler. Subsequently, the desired notation may be implemented as a simple syntactic preprocessor. The cross-cutting nature of DSALs, however, makes it difficult to encapsulate these in libraries.

In this paper, we show a technique for implementing a DSAL as a library+notation. We realize this by implementing the library in a program transformation system and the notation as a syntactic extension of the subject language. We discuss our experience with applying this technique to multiple kinds of DSALs.

BibTeX:

@InProceedings{bagge-kalleberg-dsal06-dsal,
  title = {{DSAL} = library+notation: Program Transformation for Domain-Specific Aspect Languages},
  author = {Anya Helene Bagge and Karl Trygve Kalleberg},
  year = {2006},
  booktitle = {Proceedings of the Domain-Specific Aspect Languages Workshop},
  editor = {Thomas Cleenewerck et al},
  pages = {1--8},
  publisher = {DSAL},
  location = {Portland, Oregon, USA},
  url = {http://www.ii.uib.no/~anya/papers/bagge-kalleberg-dsal06-dsal.html},
  pdf = {http://www.ii.uib.no/~anya/papers/bagge-kalleberg-dsal06-dsal.pdf},
}

Copyright:

Copyright © 2006 Anya Helene Bagge and Karl Trygve Kalleberg. This work may be freely disributed.