Markus Völter demoes programming for embedded systems using JetBrains’ MPS language workbench supporting C, C extensions, DSLs, product line variability, requirements traceability and model checking.
Angelo Hulshout presents what problem the participants to this year’s Code Generation language workbench challenge had to tackle, their solutions, difficulties encountered, and lessons learned.
Amit Rathore discusses DSLs in Clojure along with an example of using Clojure to provide real-time dynamic pricing for online retailers at Runa.
Lennart Kats introduces Spoofax, a language for testing the syntax and semantics of domain-specific languages, enabling the creation of test cases using fragments of the language being tested.
Lúcio Ferrão talks about making the software appealing to the business by using a visual language and an integrated environment supporting the entire life cycle of application development.
Sarah Allen talks on how to introduce children to the basics of programming, presenting a new related language called “Pie” along with lessons learned from creating a DSL in Ruby.
Terence Parr discusses using automation tools including DSLs to automate the software creation process as much as possible in order to increase output, effectiveness, correctness and velocity.
Markus Völter discusses what type systems are and some of the typing rules usually needed for DSLs, exemplifying the concepts with Xtext and MPS.
Richard Tibbetts discusses Complex Event Processing in the context of High Frequency Trading and the advantages of using high level DSLs, followed by the case study of a system built with StreamBase.
Heiko Behrens shows how to create an iPhone domain specific language using model-driven software development.
Bernhard Merkle discusses the various types of DSLs, and compares different language workbenches by using them with the same custom DSL in order to outline the differences between them.
Peter Bell explains DSLs, how to approach writing one, and especially how to evolve one over time using "fixing the API", "backwards compatibility", "versioning" and "automated evolution/checking”.