Domain-Specific Language Engineering

A Case Study in Agile DSL Development (Mark I)

More Info
expand_more

Abstract

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. Preprint accepted for publication in 2nd Summer School on Generative and Transformational Techniques in Software Engineering, 2 - 7 July, 2007, Braga, Portugal.