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

EBNF-The extended backus-naur form

EBNF: How to Describe the Grammar of a Language

The EBNF is the most commonly used formalism to describe the structure of languages. In this article we are going to see: What the EBNF Examples of grammars defined with EBNF How we can define a grammar using EBNF A few things to consider when using EBNF How to use EBNF in practice today A summary […]

Parsing in Python: Tools and Libraries

Parsing In Python: Tools And Libraries

This is an article similar to a previous one we wrote: Parsing in Java, so the introduction is the same. Skip to chapter 3 if you have already read it. If you need to parse a language, or document, from Python there are fundamentally three ways to solve the problem: use an existing library supporting […]

Parsing in JavaScript: Tools and Libraries

Parsing in JavaScript: Tools and Libraries

This is an article similar to a previous one we wrote: Parsing in Java, so the introduction is the same. Skip to chapter 3 if you have already read it. If you need to parse a language, or document, from JavaScript there are fundamentally three ways to solve the problem: use an existing library supporting […]

Parsing in C#: Tools and Libraries

Parsing In C#: Tools And Libraries

This is an article similar to a previous one we wrote: Parsing in Java, so the introduction is the same. Skip to chapter 3 if you have already read it. If you need to parse a language, or document, from C# there are fundamentally three ways to solve the problem: use an existing library supporting […]

Recognize patterns in Java code to understand and transform applications

Code is arguably the most valuable asset for many organizations. However the value trapped in the code is not easy to use. Why? In this article we are going to see how we can extract and process knowledge in code by specifying patterns. We will see: A clear example of what we mean by extracting […]

The Fun (and Madness) of Esoteric Programming Languages

The Fun (and Madness) of Esoteric Programming Languages

An esoteric programming language is a programming language designed to challenge the norms of language design. It is a language designed to make a point. The point could be anything: the challenge itself of creating something unusual, making an elaborate joke, creating a language as an artistic expression, testing promising ideas for programming, etc. This […]

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 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 is a program that directly executes instructions written in a programming language compiler is a program that transforms source code in a low(er)-level language If you dig deeper, though, you find some blurring between the two. In fact an […]

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