News, guides, tutorials and the bigger picture of creating domain specific languages

Domain Specific Languages

The complete guide to (external) Domain Specific Languages

This guide will show you: the what: after a definition we will look into 19 examples of DSLs the why: what are the concrete benefits you can achieve using DSLs the how: we will discuss the different ways to build a DSLs and what are the success factors After that you will get a list […]

Building a language: tool support

When building a language there is one aspect which is absolutely crucial: that is tool support. Tool support will determine if your language is usable at all, it will influence the reception from user and the usability. In this video I explain why and how you can build great tool support with a limited effort. […]

What are good books on best practices of the design of domain-specific languages (DSL)?

What are good books on best practices of the design of domain-specific languages (DSL)?

Recently I answered this question on quora. I thought it could be useful to report the answer here, in case someone else is looking for books about Domain Specific Languages. What are good books on best practices of the design of domain-specific languages (DSL)? On one side you have internal DSLs: they are sort of […]

interview with jan köhnlein on typefox, dsls and xtext

Interview with Jan Köhnlein on TypeFox, DSLs and Xtext

Jan Köhnlein is a leading expert in DSL design and an Xtext committer. After obtaining his PhD from the Technical University of Hamburg he worked for companies very well known in the modeling field: Gentleware and Itemis. Recently he founded TypeFox together with Sven Efftinge and Moritz Eysholdt. I thought it was a good moment […]

Recognizing hand-written shapes programmatically

Recognizing hand-written shapes programmatically: find the key points of a rectangle

A far-fetched goal I have is using sketching on a whiteboard as a way to define programs. I mean formal programs that you can execute. Of course through your sketches you would define programs in a high level domain specific language, for example describing a state machine or an Entity-Relationship diagram. To do so I […]

What if sketching on a whiteboard was a form of programming_

What if sketching on a whiteboard was a form of programming?

There are different possible notations for languages: textual and graphical are the two larger families. We can define graphical notations for formal languages. For example we can define a graphical notation to define state machines. A Domain Specific Language for state machines can be defined using JetBrains MPS. However the user would have to edit […]

Getting started with Jetbrains MPS_ how to define a simple language

Getting started with Jetbrains MPS: how to define a simple language (screencast)

I am blessed (or cursed) with having many different interests in software development. However my deepest love is with language engineering. There are different tools and techniques but Jetbrains MPS is particularly fascinating. To help people getting started or just get the feeling of how it is to develop with Jetbrains MPS I recorded this short screencast. […]

Develop DSLs for Eclipse and IntelliJ using Xtext

Develop DSLs for Eclipse and IntelliJ using Xtext

In this post we are going to see how to develop a simple language. We will aim to get: a parser for the language an editor for IntelliJ. The editor should have syntax highlighting, validation and auto-completion We would also get for free an editor for Eclipse and web editor, but please contain your excitement, we […]

DSLs in Action

DSLs in Action

I just received the final version of DSLs in Action, a book I reviewed for Manning. The author included in this version an example regarding Xtext, probably I was not the only one to suggest it. Now I am writing a short review to post on Amazon. In my opinion the part on internal DSLs […]