Want to learn more about DSLs, parsers, interpreters, compilers and language design?
Yes!
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 […]

Why to offer a roadmapping service for Language Engineering?

There are consolidated habits that have a negative effect when doing consulting. Lately I have been thinking about how things work during the initial contacts between a client and a consultant: the initial discussion that happens between them, before a contract is signed. Typically the consultant does two things: On one hand he tends to enfatically […]

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

Domain Specific Languages

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

Problems and Strategies to Port from Javascript to C#

Translate Javascript to C#

Let’s say you need to automatically port some code from one language to another, how are going to do it? Is it even possible? Maybe you have already seen a conversion between similar languages, such as Java to C#. That sounds much simpler in comparison. In this article we are going to discuss some strategies […]

The Simple Way to Find the Correct Syntax

The Simple Way to Find the Correct Syntax

It happens to the best of us, you are writing some code in a Language that you use sporadically and you start asking yourself what is the correct syntax for this or that. You know many languages and you start wondering how do you iterate the elements of a collection? Is it foreach, for .. in or something […]

Code Generation with Roslyn: a Skeleton Class from UML

Code Generation with Roslyn: a Skeleton Class from UML

We have already seen some examples of transformation and analysis of C# code with Roslyn. Now we are going to see how to create a more complex example of code generation with Roslyn and parsing with Sprache. We are going to create a skeleton class from a PlantUML file. In short, we are doing the […]