Want to learn more about DSLs, parsers, interpreters, compilers and language design?
Yes!

Interview with Vera Maruga on automated language migrations

Why this interview? What are the biggest reasons why someone should want to perform a migration? We will find out in this interview with Vera Maruga, the business development manager at Ispirer. She will tell us a bit more about migration from the business side and she will explain us the benefits you can get from […]

Migrating from ANTLR2 to ANTLR4

ANTLR is a popular parser generator or “compiler-compiler”, developed by prof. Terence Parr and several contributors. It’s been around since 1992, as an evolution of PCCTS. It’s gone through multiple major versions. The latest incarnation of ANTLR is version branch 4.x, the first release of which is from 2013. Here at Strumenta, we use ANTLR4 […]

How to write a transpiler

Introduction A transpiler is a program that can process code in a certain language and generate the corresponding code in another language. You can find also other terms being used, like source-to-source translator. When you may want to use a transpiler? Simply put, when you have a project that is giving value to you but […]

Getting started with ANTLR: building a simple expression language

This post is part of a series. The goal of the series is to describe how to create a useful language and all the supporting tools. Building a lexer Building a parser Creating an editor with syntax highlighting Build an editor with autocompletion Mapping the parse tree to the abstract syntax tree Model to model […]

Building and testing a parser with ANTLR and Kotlin

This post is part of a series. The goal of the series is to describe how to create a useful language and all the supporting tools. Building a lexer Building a parser Creating an editor with syntax highlighting Build an editor with autocompletion Mapping the parse tree to the abstract syntax tree Model to model […]

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

Course: Using ANTLR Like A Professional

ANTLR Course Image

A complete video course on parsing and ANTLR, that will teach you how to build parser for everything from programming languages to data formats.
Taught from professionals that build parsers for a living.

Strumenta – Consulting

If you need help designing and developing DSLs, languages, parsers, compilers, interpreters, and editors you can check the services page of the Consulting studio we founded: Strumenta. Strumenta Logo

Blog Categories