Xtext workshop material
Recently, my collaegue Peter Vermeulen and I conducted two workshops -1 “Beginner”, 1 “Advanced” level- on how to create DSLs with Xtext. Currently, we’re making the material available on Google Code free to use.
The GC repository contains both the reference implementation of a relatively simple and small, yet feature-full DSL for the workshops as well as the slide and mockup material (in the .notes project). The workshops followed the format of “couple of slides, bit of talk, lots of exercise”: of the 3 hour workshops at least 2 hours went to our attendees working hands-on on the DSL (grammar + a bit of customization), either individually or in pairs and assisted by the two of us. It turned out that the amount of material in the slides was a tad optimistic for most attendees although it was too shallow for those who already were steeped in language engineering.
The DSL concerns the combination of an entity model and a reasonably simple Web application definition and features:
- use of cross-references with custom scoping implementation
- some validations, one of which is detection and flagging of duplicates using the 3-arg error method
- chaining/path expressions (also see one of my other posts)
- arithmetic expressions
- a custom formatter
- a generator which generates POJOs and HTML pages
The notes also contain a series of mockups which we fed piece-meal to our attendees and which adds one specific concept or a group of simple and congruous concepts at a time.
I hope you find this material useful and do feel free to provide us with feedback on it (e.g. in the comments).