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

A Guide to Parsing: Algorithms and Terminology

We have already introduced a few parsing terms, while listing the major tools and libraries used for parsing in Java, C#, Python and JavaScript. In this article we make a more in-depth presentation of the concepts and algorithms used in parsing, so that you can get a better understanding of this fascinating world. We have […]

Parsing HTML: A Guide To Select The Right Library

Parsing HTML: A Guide to Select the Right Library

HTML is a markup language with a simple structure. It would be quite easy to build a parser for HTML with a parser generator. Actually, you may not need even to do that, if you choose a popular parser generator, like ANTLR. That is because there are already available grammars ready to be used. HTML […]

JArchitect: review of a tool to manage your Java project

JArchitect is a software to analyze Java projects. I think we need to use software to reason about software. As software developers we are building software to help other professionals in doing their job but still we rely not so much on software to help us in our work. We like the romantic ideas of […]

NDepend: Static Analysis For Software Architects

NDepend: Static Analysis For Software Architects

NDepend is a tool that helps .NET developers to write beautiful code This is a definition that does not come from the official documentation, but from a post on the blog of its developer. We like it because it is more interesting than the technical one: NDepend is a static analysis tool for .NET code […]

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