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

Parsing SQL

You can find the code presented in this article in the companion repository SQL is a language to handle data in a relational database. If you worked with data you have probably worked with SQL. It is in the same league of HTML: maybe you never learned it formally but you kinda know how to […]

Quick Domain-Specific Languages in Python with textX

Introduction textX is a suite of Python modules and tools to quickly develop text-based domain-specific languages. Compared to heavyweight language workbenches such as Jetbrains MPS, Eclipse Xtext or Spoofax, textX is less powerful and not as feature-rich; however, it’s directly usable in Python with minimal effort as it’s just another Python library, and it has […]

Domain Specific Languages for smart contracts

There are some ideas that are gaining popularity: blockchains and smart contracts are among them. If we can ignore the hype and the inflated expectations I think they maybe ideas with a strong potential impact. I do not want to talk about these technologies in general but just from the point of view of a […]

JaRIKo, an RPG Interpreter in Kotlin

Introduction In this article, we’ll review JaRIKo, an open-source interpreter for a subset of the RPG programming language running on the Java Virtual Machine. People interested in legacy modernization techniques should find this interesting: as we’ll see in the course of the article, the driving force behind JaRIKo is the ultimate migration of a product with thousands […]

Why you should not use (f)lex, yacc and bison

In the field of parsing Lex and Yacc, as well as their respective successors flex and GNU Bison, have a sort of venerable status. And you could still use them today. But you should not do that. In this article will explain why they have problems and show you some alternatives. Lex and Yacc were […]

The Great New ANTLR 4.8

It has  been more than two years since the last major release of ANTLR, now version 4.8 is ready. ANTLR is a mature and well-tested project, but this release still manages to bring a new target, a fix for the C# packet, improvement on the compilation of the C++ runtime and a few fixes. New […]

Writing a browser based editor using Monaco and ANTLR

  This is a tutorial on creating a browser-based editor for a new language we are going to define. We are going to use two components: Monaco: it is a great browser-based editor (or a web editor: as you prefer to call it) ANTLR: it is the parser generator we love to use to build […]

Pyleri: Parsing with Ease

Pyleri Tutorial: Parsing with Ease

Welcome to a tutorial on Pyleri, aka Python Left-Right Parser, a simple parsing tool. To use it when you need something more than a regular expression, but less than a full parser generator. In this tutorial we are going to show you how to use the tool and the basics of parsing. Why Learning Pyleri? […]

Lessons learned working decades with Graphical DSLs: Interview with Juha-Pekka Tolvanen

Why this interview? Juha-Pekka Tolvanen is one of the veterans of the DSL industry. There are not many persons in the world who has an experience comparable to his. This is why I really wanted to talk to him and ask him about the work he has been doing for the last years and what […]

How would I go about creating a programming language

How would I go about creating a programming language?

The title of this article reflects a question I hear over and over in forums or in emails I receive. I think all curious developers asked it at least once. It is normal to be fascinated by how programming languages work. Unfortunately, most answers we read are very academic or theoretical. Some others contain too […]