•  

Developing DSLs with Eclipse

A session at EclipseDay at the GooglePlex

Thursday 27th August, 2009

11:00am to 12:00pm (PST)

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.

TMF Xtext, which is a part of the Eclipse Galileo 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 Peter will explain what DSLs are and why you should care about using them. After a short introduction, he will show how to develop DSLs with TMF Xtext, which is a part of this year's Galileo release. 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. Peter will also show how to write a code generator that allows you to transform your DSL scripts into running software.

About the speaker

This person is speaking at this event.
Peter Friese

Making mobile more social, one app at a time.

Coverage of this session

Sign in to add slides, notes or videos to this session

Tell your friends!

When

Time 11:00am12:00pm PST

Date Thu 27th August 2009

Short URL

lanyrd.com/sxpt

View the schedule

Share

Topics

See something wrong?

Report an issue with this session