The science, tools, strategies, patterns and tools behind the creation and processing of languages

Interview to Vaclav Pech on Jetbrains MPS_ the community and the future

Interview to Vaclav Pech on Jetbrains MPS: the community and the future

If you are reading this blog regularly you know that I am interested in many things but language engineering is the topic closest to my heart. You could have also noticed that I am spending a lot of time working with MPS. If you are instead a new reader you may not know that MPS […]

On the need of a generic library around ANTLR_ using reflection to build a metamodel

On the need of a generic library around ANTLR: using reflection to build a metamodel

I am a Language Engineer: I use several tools to define and process languages. Among other tools I use ANTLR: it is simple, it is flexible, I can build things around it. However I find myself rebuilding similar tools around ANTLR for different projects. I see two problems with that: ANTLR is a very good […]

Getting started with the Whole Platform_ building grammars

Getting started with the Whole Platform: building grammars

I played for the first time with the Whole Platform a few years ago. It was one of the first Language Workbenches on which I put my eyes and I found it very fascinating. Then I was dragged into other things: whoever went through a PhD knows what I mean. Academic life has always a […]

ANTLR and the web: a simple example

ANTLR and the web: a simple example

ANTLR on the web: why? I started writing my first programs on MS-DOS. So I am very used to have my tools installed on my machine. However in 2016 the web is ubiquitous and so our languages could be needed also there. Possible scenarios: ANTLR also on the web: users could want to access and […]

ANTLR and Jetbrains MPS: Parsing files and display the AST using the tree notation

Itemis did it again: they just released a new very cool plugin for Jetbrains MPS. This one permits to define new tree editors. They look like this: In this post we are going to see: how to use ANTLR parsers inside MPS how to represent the parsed AST using the tree notation In particular we are […]

mps-bytecode: creating, loading, modifying, saving and executing JVM class files using Jetbrains MPS

mps-bytecode: creating, loading, modifying, saving and executing JVM class files using Jetbrains MPS

I recently created this project to edit JVM class-files inside Jetbrains MPS. Why? It was fun It is a great tool to learn about the JVM internals. Do you know what a frame is? How dynamic invoke works? Instead of generating Java code for my applications I could translate to mps-bytecode. More about this later. […]

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 […]

Tabular projections in Jetbrains MPS: let's start building an accounting system

Tabular projections in Jetbrains MPS: let’s start building an accounting system

Jetbrains MPS is an amazingly flexible tool which permits to use several kinds of projections. Today we are going to take a look at tables. What is Jetbrains MPS to me Jetbrains MPS is a Language Workbench: a system to design languages and supporting tools. This is one definition of MPS, but for me it […]

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: find the key points of a rectangle-1

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 […]