SPA Conference session: Domain Specific Languages: Design and Evolution

One-line description:A practical overview of DSLs - from the basics to the latest research topics.
 
Session format: Tutorial (75 mins) [read about the different session types]
 
Abstract:Domain Specific Languages (DSL's). Most people have heard of them, but how can you use them to quickly speed application development?

A theoretical tutorial with a practical focus, in this session we will start by looking at key concepts such as external vs. internal DSLs and abstract grammars vs concrete syntax. We will then show how to go about designing a DSL by using practical examples from our web application generator. We will introduce the concept of "projections" and look at the various ways of editing and storing DSLs and will then look at the framework vs. code generation debate, showing how your DSLs matter much more than the way you happen to consume them.

We will finish off by looking at some of the outstanding issues with versioning, transforming and interfacing between DSLs that come up as you start to develop complex Software Product Lines and some practical approaches to solving the problems.

Objectives:
- Provide thorough understanding of DSLs
- Provide heuristics for choosing editing projections, storage mechanisms, and developing frameworks/code generators to consume your DSLs.
- Suggest ways to quickly get started using DSLs to enhance productivity and maintainability.
- Provide insight into some of the longer term issues and their possible solutions as application development becomes more language oriented.
 
Audience background:Relevant to architects, technical leads and developers responsible for architecting their own solutions. Comfort with an OO language, some experience of web application development and interest in speeding application development are the only requirements. Particularly relevant to people responsible for developing multiple applications over time (applicable, but less relevant if you just maintain a single application).
 
Benefits of participating:Learn how to use DSLs to create more maintainable applications more quickly.
 
Materials provided:Slides.
 
Process:55 minute presentation. 20 minute Q&A.
 
Detailed timetable:
 
Outputs:
 
History:I have been refining this presentation for about 2 years. Presented on DSLs and Practical Code generation at cf.objective() 2006, Framework Conference 2007, CF United 2007, Scotch on the Rocks 2007 and have prepared a paper on the DSL transformations for the Domain Specific Modeling conference co-located at OOPSLA 2007.
 
Presenters
1. Peter Bell
SystemsForge
2. 3.