Xtext - Implement your Language Faster than the Quick and Dirty way

Mon 1:30-5:00 pm - Bonanza B
Moritz Eysholdt, itemis AG, Germany
Heiko Behrens, itemis AG, Germany

Whether there is an (emerging or legacy) Domain Specific Language to increase the expressiveness of your company's developers or whether you are about to invent a new General Purpose Programming language: Good tooling beyond a parser/compiler is essential to make people who work with this language productive.

Xtext is an award-winning* framework to build such tooling.

In this tutorial, you will learn how to define your language and your statically typed, EMF-based Abstract Syntax Tree using a grammar and generate a parser, a serializer and a smart editor from it. The editor provides many features out-of-the-box, such as syntax highlighting, content-assist, folding, jump-to-declaration and reverse-reference lookup. Then we will continue to show how all aspects of the language can be customized using Dependency Injection and do this by example for linking and formatting or validation. As an outlook, we will show how to integrate your language with Java, how Xtext maintains a workspace-wide Index of named elements, how to implement incremental code generation or integrate an interpreter, and how to implement Quick Fixes and refactoring.

* Eclipse Community Award 2010 for the most innovative Eclipse project

AudienceResearchers, Practitioners, Managers, Educators
Objectives

The attendees will learn, how to:

  • define languages by defining a grammar and a statically typed AST
  • generate parser, serializer and a smart editor from this grammar
  • customize runtime and generated code using Dependency Injection
  • customize linking/scoping and formatting or validation by example

Furthermore, they will get an overview about how to:

  • integrate the language with the Java language,
  • use the language for incremental code generation
  • integrate with an interpreter
Class format

Alternating slides-on lecture and hands-on exercise.

 

2009 Highlights

Gerard HolzmannGerard Holzmann discusses Spin, a design analyzer tool, and Scrub, a code review tool, used by Jet Propulsion Laboratory to analyze and fix the software used for critical solar system exploration missions.

Watch the video on InfoQ.

More Highlights