``The goal of domain-specific languages (DSLs) is to increase the
productivity of software engineers by abstracting from low-level
boilerplate code. Introduction of DSLs in the software development
process requires a smooth workflow for the production of DSLs
themselves. This tutorial gives an overview of all aspects of DSL
engineering: domain analysis, language design, syntax definition, code
generation, deployment, and evolution, discussing research challenges
on the way. The concepts are illustrated with DSLs for web
applications built using several DSLs for DSL engineering: SDF for
syntax definition, Stratego/XT for code generation, and Nix for
software deployment.''
This is the text of the abstract that I just sent to the organizers of the
Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE'07).
Joost Visser and Ralf Laemmel invited me to give a tutorial at GTTSE last August in Seattle where we were attending FLOC 2006.
(On the photo during the RULE/WRS lunch, which was really the day before they asked me, but hey there are no pictures from that event.)
I was, and still am, very happy with the invitation (see photo of me being happy; it looks silly, but that's the price you have to pay;-)
Here's what I wrote when accepting the invitation:
``Hmm, I've been mulling for a good title, but haven't found one yet.
I'll try to give you an impression of what I have in mind. Some titles
that are related to what I want to do (but that I'm not completely happy
with yet) are:
- DSL Engineering
- Integrating DSLs in Software Engineering
- Integrating Domain-Specific Languages
What I want to talk about is the development of DSLs as a common
abstraction activity in the software engineering process. Just like a
set of classes is developed to implement an API that provides
functionality in a certain domain, one can develop a DSL to provide a
compact and appropriate notation for the domain. The challenge is to
make the development of DSLs so cheap that it becomes attractive to
actually start using it in software development on a regular basis. This
is not an original idea of course. For instance, the DSL Tools of
Microsoft also aim to achieve this using visual languages.
[For good measure it should be noted that Microsoft did not invent the term
DSLs. While you, my dear reader, are aware of this, I recently ran into
people who asked me whether I was using the term DSL to humour them (they are
working with MS DSLs). The fact that the term DSLs stems from the previous century
was news to them.]
This topic is at the basis of the
MoDSE project
that we're starting in
Delft, which is about 'Model-Based Software Evolution'. That is, we're
going to study the impact of
evolution on a software development
process based on DSLs/models. (Upgrading DSL programs when language
changes, adapting to changes in the target platform, integrating with
legacy code, etc.). However, I would like to restrict the tutorial to the
DSL Engineering part of the story; that is, designing and implementing
DSLs.
Of course, the approach would be based on SDF, Stratego/XT, and elements
of MetaBorg. But I want to go beyond the mere technical issues of SDF
and Stratego, and discuss the design and implementation of a collection
of interacting DSLs. This is the topic that I'm going to work on in the next year
and that I'll be motivated to talk about next Summer and write about.''
The year is going by rapidly, but I have indeed started to work on this project, albeit
slower than I had wanted. Together with a bunch of master's students I'm exploring model-driven
engineering and domain-specific languages for the domain of web applications. Personally,
I'm in the process of getting up-to-date with the latest Java technology for web application
development.
I am planning to report about my journey through webland and towards the GTTSE tutorial
on this blog, but if you want to hear the end result you should consider registering for the
summerschool. I understand registration opens March 1.
Lingering a bit in Seattle in August 2006, is a good occasion to show off this photo (in fact a composition of a dozen individual shots) of the
swimming pool in the Sheraton hotel were the FLOC conference was held. While a swimming pool is not so exceptional in a hotel, it had been
some thirty years since I swam at such a high altitude (above street level that is); this one was at the 35th floor. (The previous occasion was in a hotel in Sao Paulo, Brazil in 1976; that one was actually on top of the building, that is, without a roof.)
This one should be really viewed
large. See more photos of the Seattle trip, including one of Bill Gates' office, in the photoset
on flickr or
on this site.
In February I had promissed 'to report about my journey through webland and towards the GTTSE tutorial on this blog', but have failed miserably. I find I'm not a good blogger. Not that I have nothing to say. During the process of designing and implementi
Tracked: Jun 21, 12:09
About fifteen months ago I announced my ``Domain-Specific Language Engineering'' project that would result in a tutorial for the GTTSE'07 summerschool. "This tutorial gives an overview of all aspects of DSL engineering: domain analysis, language design,
Tracked: May 11, 18:20