<<< Previous speaker Next speaker >>>

Rebecca Parsons, ThoughtWorks

 Rebecca  Parsons

Dr. Parsons has more than 20 years of application development experience in industries ranging from telecommunications to emergent internet services. She has been published in language and artificial intelligence media, served on numerous program committees, and currently reviews academic articles for several journals.

Before coming to ThoughtWorks she worked as an assistant professor of computer science at the University of Central Florida. She also worked as director's post doctoral fellow at the Los Alamos National Laboratory researching issues in parallel and distributed computation, genetic algorithms, computational biology and non-linear dynamical systems.

Dr. Parsons holds a [Ph.D] in Computer Science from Rice University.

Presentation: "Ending Panel"

Time: Friday 17:15 - 18:15

Location: Fleming Room

Tutorial: "Domain Specific Languages"

Track:   Tutorial

Time: Monday 09:00 - 16:00

Location: Rutherford Room

Abstract:

Domain Specific Languages (DSLs) are an old technique in software development that's getting a recent resurgence in interest. Most developers run into them regularly - as XML configuration files, regular expressions, query languages or build scripts. However they haven't been given the attention they deserve and there is very little information out there to help developers build them effectively. We find that few people have done much to build their own DSLs and even fewer have a broad appreciation of the various techniques involved.

This tutorial is a step towards closing this gap. We'll begin by introducing the three main categories of DSLs: External, Internal, and Language Workbenches. We'll talk about the advantages of DSLs and the problems in using them, so that you'll appreciate what the different styles look like and when you might want to build them. In the second part we'll go into more details on techniques of working with each of the three styles, to get you started on your own work.

We are currently working to develop a coherent pedagogic framework (if you'll forgive a pretentious name) for DSLs, this tutorial is an opportunity to catch up with our work. However it does come with a caveat: we are still very much in the middle of the process of capturing and organizing this knowledge. As a result we won't be describing a finished body of knowledge, but rather one that is still evolving.