Domain-Specific Languages (DSLs)

Software development may suffer from considerable accidental complexity caused by the adopted technology. DSLs are a form of reducing such a complexity, moving the focus to the essential complexity of software. DSLs may also facilitate non-programmers to take part in the development of systems.

My PhD thesis addressed the development of APIs for Object-Oriented Frameworks that allow instantiation code to closely resemble domain concepts, and in turn, facilitate the definition of a DSL for developing applications based on a given framework.

Click on the icon to see related publications.


Object-Oriented Framework + Specialization Layer


A technique to enrich a framework with a layer of specialization aspects – entities that form a uniform interface for fine-grained instantiation. This layer models the concepts of an application based on the framework, and hence, it embodies the abstract syntax of a modeling language for the framework domain. I’ve proposed Aspect-Oriented Programming for implementing the specialization layer, demonstrating how to achieve it for Java frameworks with AspectJ.

The ALFAMA workbench is a prototype that automatizes the definition of the abstract syntax of a modeling language in EMF from the specialization layer.

Alfama


Configuration of plugin-based systems using feature models

An approach for managing the variability offered by the plugin-based system of Eclipse (Equinox/OGSi) by means of feature models – these are manipulated as a technical DSL to define valid system configurations.

Plugins as features


XDiagram

A technical DSL to define graphical DSLs in the ecosystem of Eclipse (EMF).