Domain Specific Languages (DSLs) are becoming more and more popular, allowing developers to express their intent more precisely and with less syntactic noise. DSLs can be built on top of a host language (like Java or Ruby), which are referred to as "internal DSLs". External DSLs are far more flexible in terms of language design: you can define any desired grammar, you can define domain specific constraints and error messages, and you can process the DSL in a concise manner because it can either be interpreted or transformed into the code of any language by a generator.
Xtext, which is a part of the Eclipse Galileo release (and the upcoming Helios release), is a framework for developing textual domain-specific languages. Given an EBNF-style grammar, Xtext automatically generates an Ecore meta model and a rich-featured, fully configurable text-based DSL editor including features such as syntax highlighting, hyperlinked reference navigation, reference look-up, code completion, formatting, an outline and so on. The default implementation can easily be customized.
In this session, I will explain what DSLs are and why you should care about using them. After a short introduction, I will show how to develop DSLs with Xtext. You will learn how to define a grammar for a DSL and create a full-blown editor for this DSL, featuring code completion, syntax highlighting, hyperlinking, a semantic outline and more. I will also show how to write a code generator that allows you to transform your DSL scripts into running software.
Sign in to add slides, notes or videos to this session