Want to learn more about DSLs, parsers, interpreters, compilers and language design?
Yes!
The Best Programming Languages For each situation

The Best Programming Languages for Each Situation

There is a question that many people take as a sign that the questioner does not understand the subject at all. Some people even find it enraging. The question is usually in the form What is the best X? What is the best car? What is the best programming language? But at the same time it […]

Parsing in Java: Tools and Libraries

Parsing in Java: Tools and Libraries

If you need to parse a language, or document, from Java there are fundamentally three ways to solve the problem: use an existing library supporting that specific language: for example a library to parse XML building your own custom parser by hand a tool or library to generate a parser: for example ANTLR, that you can […]

The OOP(S) Concepts You Need To Know

The OOP(S) Concepts You Need To Know

Object Oriented Programming (OOPS or OOPS for Object Oriented Programming System) is the most widely used programming paradigm today. While most of the popular programming languages are multi-paradigm, the support to object-oriented programming is fundamental for large projects. Of course OOP has its share of critics. Nowadays functional programming seems the new trendy approach. Still, […]

The difference between a compiler and an interpreter.

The difference between a compiler and an interpreter

According to their definitions, the difference between a compiler and an interpreter seems clear enough: interpreter a program that directly executes instructions written in a programming language compiler a program that transforms source code in a low(er)-level language If you dig deeper, though, you might find some blurring between the two. In fact an interpreter could translate […]

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