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

68 Resources To Help You To Create Programming Languages

68 Resources To Help You To Create Programming Languages

Here it is a new guide, to collect and organize all the knowledge that you need to create your programming language from scratch. Creating a programming language is one of the most fascinating challenge you can dream of as a developer. The problem is that there are a lot of moving parts, a lot of […]

A Language Server For DOT With Visual Studio Code

Language Server Protocol: A Language Server For DOT With Visual Studio Code

In a previous post we have seen how the Language Server Protocol can be a game changer in language development: we can now build support for one language and integrate it with all the IDEs compatible with this protocol. In this article we are going to see how easy is to build support for the DOT Language in Visual […]

ANTLR Mega Tutorial

The ANTLR Mega Tutorial

Parsers are powerful tools, and using ANTLR you could write all sort of parsers, usable from many different languages. In this complete tutorial we are going to: explain the basics: what a parser is, what it can be used for see how to setup ANTLR to be used from Javascript, Python, Java and C# discuss […]

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

Why You Should Know the Language Server Protocol

Why You Should Know the Language Server Protocol

The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, goto definition, find all references and alike into the tool. from Language Server Protocol In other words, it is a standard way to communicate between editor and language tools, like linters, […]

Interview with Thorsten Ball, author of “Writing an Interpreter in Go”

  Thorsten Ball is the author of the book Writing an Interpreter in Go. I recently found out about his book and I reached out to him to ask a few questions about his ideas on creating programming languages, writing a book and discuss his approach. Let’s meet Thorsten Hi Thorsten can you start by telling […]

Best posts on Language Engineering

Bests posts on Language Engineering

  In the past years, and in the last 12 months in particular I wrote tens of posts, some of which got a good response from you (thank you!). I thought it could be useful to create a list of the most relevant posts for each topic. It could help in particular new readers. ANTLR […]

Building a language: tool support

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

Create a simple parser in C# with Sprache

Create a simple parser in C# with Sprache

Everybody loves ANTLR, but sometimes it may be overkill. On the other hand, a regular expression just doesn’t cut it or it may be too complicated to maintain. What a developer can do in such cases ? He uses Sprache. As its creators say: Sprache is a simple, lightweight library for constructing parsers directly in […]

The important changes in the new ANTLR 4.6

The Important Changes in the New ANTLR 4.6

After almost a year since the last major release, there is a new ANTLR version: 4.6. There are many news: new targets, better perfomance, better error handling and several improvements in the development of ANTLR itself. New targets The most impactful news is probably the new targets: C++, Go and Swift. Of course getting C++ […]