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

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

Discovering The Arcane World Of Esoteric Programming Languages

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

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