March 11 2015

San Francisco

Win A Free Ticket!

Register

Send a mail to xtextcon@itemis.com and answer the following question:

"What parser generator framework is Xtext based on?"
A: JavaCC    B: Antlr    C: SableCC

We will randomly pick three winners and inform the attendees on March 2.

Xtext Day, San Francisco 2015

Co-located with EclipseCon and FOSS4G.

Xtext Day is the place to learn more about Xtext, the world's best language development framework. Get in touch with Xtext users and the developers behind it. Discuss feature requests and get your individual problems solved.

Xtext Day takes place in San Francisco, co-located with EclipseCon NA.

Xtext Day is a smaller versions of the XtextCON taking place in Europe in May. Here's a short video about XtextCon 2014.

10:30 - 11:05

The Future of Xtext

Sven Efftinge, Sebastian Zarnekow [itemis]

Xtext has been around for a couple of years now, proving itself as a solid basis for language development in large and small scale projects. It is used in commercial products in all kinds of vertical industries and has been a basis for many research projects.

In this session we discuss where the framework is heading and how existing users will benefit from future development.

11:15 - 11:50

RepreZen DSL: Pushing the limits of language usability with Xtext

Ted Epstein, Tatiana Fesenko [ModelSolv, Inc.]

Many DSLs are convenient alternatives to hand-coding or generic data formats. Others are unique in their solution space, providing the best way, sometimes the only way, to describe a particular model or program.

But what about DSLs that have to compete with other languages? When language readability, extensibility, and efficiency of expression are key to the success of your product, what language design ideas can we bring to the table, and what techniques will make them work in Xtext?

RepreZen is an Eclipse-based API design environment, with its own DSL to describe REST APIs and supporting data types. As a new entry in the competitive and rapidly evolving API design space, it wasn't enough to offer new capabilities; we needed to raise the already high bar of usability set by other API description languages. And we needed to streamline the DSL design process for fast evolution, adding new language constructs with each beta release.

In this talk, we'll explain our language design goals, and show how we implemented some especially challenging language features, including:

  • Use of a generic meta-syntax to formalize grammatical patterns in the DSL, enabling greater consistency and more centralized logic for formatting, syntax highlighting, code assist, etc. Language extensibility and platform portability are also benefits of this DSL design pattern.
  • Optional fluency, which accommodates concise or fluent coding styles, according to the user's preference, through the use of optional keywords.
  • Indent-based block scoping in Xtext, similar to YAML or Python.
  • Flexible sequencing of language constructs for improved usability, with an option to automate canonical ordering for consistency across models.

11:50 - 13:30
Lunch
13:30 - 14:05

DSLs on the JVM - An Introduction to Xbase

Holger Schill [itemis]

Xtext makes it easy to define domain specific languages, but making your DSL a first class programming artifact with support for expressions and integration with Java is a hard thing if you do it from scratch.

The Xbase library is an integral part of the Xtext framework. Xbase implements the bridge from DSLs to Java. It greatly simplifies your language implementation, if you want to run your DSL on the JVM. Xbase consists of a very powerful Java-like expression grammar and implements all the necessary infrastructure to link your DSL against existing Java types, compile it to executable code and validate it against the JVM specific constraints.

In this session I want to explain how Xbase works under the covers and dive into its APIs. You will see, how to enhance your language and make it highly expressive and powerful without introducing an artificial gap to the Java platform. If you want your DSL to be a first class programming artifact, come to this session and see how to benefit best from Xbase.

14:15 - 14:50

Scaling Xtext

Lieven Lemiengre, Hendrik Eeckhaut [Sigasi]

Using Xtext for the first time is usually a very positive experience. Although Xtext is a complex generic framework, it is very easy to create your first Xtext-based editor, because of Xtext's smart defaults and intuitive APIs. Even with minimal initial effort, the results are quite spectacular. Unfortunately the initial excitement often turns into disillusion as soon as you use your plugin on a big project.

Many development teams hit a performance wall as their plugin gets deployed and has to support larger projects. Internally, Xtext is a complex beast. The internals are carefully hidden from the user, but understanding them is critical to understand where the performance bottlenecks come from.

At Sigasi we have built commercial tool support for complex hardware description languages (VHDL, Verilog, SystemVerilog) using the Xtext framework. Our plugin needs to handle big industrial sized projects (>400k lines of code) that include large generated files (2 to 10 MB). To handle these kinds of projects we have developed a set of techniques over the last four years.

In this talk we will cover some performance critical pieces of the Xtext framework and evaluate what can be done to optimize it (think: parallel loading, caching, fast linking, etc.). We will also discuss some workarounds that can be used if nothing else works (light-weight editors, reducing the workload of the compiler).

15:00 - 15:35

Scoping, Linking and Indexing

Moritz Eysholdt [itemis]

Scoping and Linking is often considered the most complicated part of a language infrastructure. Xtext provides you with the needed concepts to get the implementation right and with good performance. In this session you will learn how scoping is done in Xtext languages, which default implementations there are to choose from and how to implement custom scoping logic. You will also learn what the index is, how it works and how you can add even non-Xtext elements to it.

15:35 - 16:15
Afternoon Break
16:15 - 16:50

Using Xtext to build billion transistor chips and IoT devices

Jeremy Chan [Sonics]

Building a modern billion transistor System-on-a-Chip (SoC) is a complex task requiring the integration of hundreds of customizable IP components and connections between them. The software to create these complex chips consists of various code-generators, performance simulators, logic synthesis tools, performance databases and place-and-route tools. Each tool typically uses its own domain specific languages to describe the input and outputs. Abstraction and good user interface are essential to successfully transform an architectural concept in to a power optimized and performance-tuned chip.

Building a software tool to efficiently configure and automate the design of an SoC is a non-trivial task. Having used XML as the intermediate persistence format; it was found it to be difficult to read and hard to bridge to legacy formats. We found that Xtext and EMF worked well to quickly glue these hardware tools together. Through its facility to specify a domain specific language that closely matched the meta-data of our existing tools, we were able use it to rapidly build a tool to handle the integration of components for large SoC designs consisting of a graphical editor, scriptable interfaces and intelligent text-based entry.

This presentation will cover:

  • The lessons and challenges we encountered whilst using Xtext to specify the domain specific language in our flow
  • How we used code-generators + Xbase to allow reuse of our existing Python-based validation error checks
  • How we used Xtext + Xtend to build code generators and the design patterns used for providing extensible elements of our domain specific language
  • The challenges to providing synchronization between various input methods: a Tcl interpreter, a graphical editor and text editor
  • Our run-time validation and error checking strategy
  • How we used Xpect to test our data-model utilities as well as the correctness of our parser

17:00 - 18:00

Lightning Demos

TBA

Four to five shorter talks about interesting applications of Xtext. If you want to give a demo about what you've done with Xtext, please send us your proposal

The Xtext Clinic

Ask a committer!

The clinic is your chance to get any Xtext-related problem solved. No matter if you got stuck in the middle of a project, or you just want to get some feedback on your design decisions and ideas. At the clinic you'll get the chance to go into a deep dialog with one of the Xtext experts.

If you have registered for the event and want to make an appointment, please send a mail to xtextcon@itemis.com.

XRobots

Play with Xtext!

For EclipseCon Europe 2014, we came up with the idea of having a robot game at the itemis booth. Two Lego robots that battle in a sumo fight. As a highlight, the attendees themselves should provide the scripts to control the robots using their web browsers.

The game was a blast. Some players even continued to tweak their robots after hours in their hotel room and proved it at our booth the next day. We will bring the game to the XtextDAY and EclipseCon NA 2015.

Conference Venue

The Hyatt Regency San Francisco Airport is both the conference venue and the conference hotel. The hotel is a short drive from the San Francisco International Airport (SFO), a mile from the Burlingame city center, and 15 miles from downtown San Francisco.

Make a room reservation at the conference hotel.