Research project granted in the NWO/EW Open Competition 2005.
This proposal is about techniques at the intersection of two areas of
software engineering. (1) In order to automate software engineering
we would like to automate the process of producing programs by means
of automatic transformations
, thereby computing with programs
as we do with other data. (2) In order to improve the expressivity of
programming languages to the concepts and notations of specific
application domains, we would would like to extend general-purpose
languages with domain-specific abstractions. Combining these
desiderata leads to the need to extend transformations for new
The goal of this project is to develop a systematic approach to the
extension of general purpose languages with domain-specific
abstractions, integrating those abstractions in the syntax and
transformations of the programming environment. This requires research
into the following issues:
- strategies for the definition of domain abstractions
- mechanisms for open extensibility of transformations
- methods and patterns for design of open transformations
- constraints for independent extensibility of transformations
- derivation of transformation extensions from definitions of abstractions
We approach this goal by analyzing a variety of existing
domain-specific languages and transformations, developing generic
extensibility mechanisms, and validating these first in an `in vitro'
setting and then in a programming environment for the Java
language. The project builds on a solid body of work from the
Stratego/XT project that will allow us to concentrate on the core of
the problem, rather than being distracted by infrastructural issues.
There is an opening in the Transformations for Abstractions
project for a postdoc (1 year; with an option for 2 more years) or a PhD
student (4 years).
Contact Eelco Visser
for more information about the project (the full proposal) and the job.