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

Alternatives to global variables and passing the same value over a long chain of calls

  The old, good global variables are the wrong solution to a real problem: you want some information to be available in a large context. In Object-Oriented languages like Java we often do not have something we call a global variable. We instead lie to ourself using public static variables or singletons and denying they […]

Representing relationships as first-class citizens in an Object-oriented programming language

Representing relationships as first-class citizens in an Object-oriented programming language

As beginners we used to write very large functions and then giant God classes. As we improve our skills, our classes become smaller but more numerous: we get a swarm of small, focuses classes that collaborate to create the final system. In other words we shift the complexity from the relations between the components of a class to the […]

Turin Programming Language for the JVM: building advanced lexers with ANTLR

Turin Programming Language for the JVM: Building Advanced Lexers with ANTLR

As I wrote in my last post, I recently started working on a new programming language named Turin. A working compiler for an initial version of the language is available on GitHub. I am currently improving the language and working on a Maven and an IntelliJ plugins. Here and in the next posts I will go over the […]

Creating a Programming Language for the JVM: the Turin Programming Language

  Because you know, in the end everyone wants to create his own programming language. I have been interested in parsers and languages for a while. I worked with Xtext, Jetbrains MPS, created a few DSLs etc. etc. I also wrote my PhD thesis on this topic but so far I did not get started […]

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

Polyglot Software Development_ my PhD thesis

Polyglot Software Development: My PhD Thesis

Yesterday I defended my PhD Thesis, with the title Polyglot Software Development. If you want to take a look you can download it here: thesis Summary The languages we choose to design solutions influence the way we think about the problem, the words we use in discussing it with colleagues, the processes we adopt in […]

Megamodels, projectional editors and Inference in programming

Megamodels, projectional editors and Inference in programming

It is already some years that I am thinking about possible evolution of programming that give away text as a form to store the programs or at least try to put more and more distance between the way the code is stored and the way the code is edited and explored. That extra mile can […]

The C to mbeddr-C importer_ a first look

The C to mbeddr-C importer: a first look

Currently I am in Munich, working at Fortiss, an institute of the Technische Universität München. I am here to work on mbeddr, which is a super-cool project. mbeddr supports embedded software development based on an extensible version of C language and IDE. Existing extensions include interfaces with pre- and postconditions, components, state machines and physical units, […]

Screencast - How to show the content of a file in Jetbrains MPS

Screencast – How to show the content of a file in Jetbrains MPS

A few days ago I recorded a short screencast to show how it is possible to visualize a file inside Jetbrains MPS.

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