Jim Duey advises on solving a problem by dividing it in smaller requirements that are dealt with, then using DSLs to compose results into one big solution. Code samples in Clojure.
Alex Shatalin and Václav Pech continue their language building demo using JetBrains MPS started in Part 1 of this presentations (see “Building Your Own Java, Part 1” on InfoQ).
Alex Shatalin and Václav Pech hold a hands on demonstration on using JetBrains MPS to generate a new language, including version control, debugging, testing, refactoring, etc.
Achim Demelt discusses creating a UI using a completely declarative DSL called S4 without flow control, events or data binding.
Phil Trelford suggests domains, such as modeling, DSLs, concurrency, for which functional programming is well-suited, and areas for which an OO or a mixed approach has better results.
Markus Völter discusses the abstractions that should be considered when creating a DSL, insisting on expressivity, semantics, modularity, and concrete syntax.
Maxim Mazin and Evgenii Schepotiev discuss the advantages of using DSLs by exemplifying application development with JetBrains MPS (Meta Programming System) and the Webr-DNQ framework.
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.