Why this interview? Juha-Pekka Tolvanen is one of the veterans of the DSL industry. There are not many persons in the world who has an experience comparable to his. This is why I really wanted to talk to him and ask him about the work he has been doing for the last years and what … | Continue reading
In this tutorial, we’ll give an introduction to Peggy. As usual in our articles, all the code is on GitHub. | Continue reading
Improving the performance of an ANTLR parser. The article will show you changes and improvements that you can make to improve the performance of your parser built with ANTLR. | Continue reading
We present and compare all possible alternatives you can use to parse languages in Python. From libraries to parser generators, we present all options | Continue reading
Introduction In this tutorial, we’ll write an editor for a subset of PlantUML, as an extension to Visual Studio Code. However, we won’t start from scratch like most tutorials do (including our own on implementing high-quality code completion in VSCode with ANTLR and the Language … | Continue reading
We present and compare all possible alternatives you can use to parse languages in JavaScript. From libraries to parser generators, we present all options | Continue reading
Why this interview? Matteo Mortari is a Senior Software Engineer at Red Hat, where he contributes in Drools development and support for the DMN standard. In this interview, we try to find out more about his work in the process automation field. Here there are some quotes I found … | Continue reading
In this article we will explore the implementation of a simple compiler able to translate the IBM RPG programming language into executable machine code for modern hardware. It is not a full featured RPG compiler: it implements a few basic constructs of the language but it is good … | Continue reading
Introduction Automatic code completion, also known as IntelliSense, is an important part of the modern software development experience. No matter if you’re a programmer writing code in a general-purpose programming language, or a business expert writing rules in some domain-speci … | Continue reading
Why this interview? Scott McKinney is the creator of Manifold, a plugin that supplements Java with powerful features. In this interview, we’ll try to figure out more about his work. Here there are some quotes I found particularly interesting: We built the rules engine, and it was … | Continue reading
Introduction: the ANTLR4 Code Completion Core When we think about an editor for code, we think about syntax highlighting: graphically marking different elements of programming constructs, so that we can better interpret the structure of the code at a glance. We’ve written a few a … | Continue reading
This is a review of the book Natural Language Processing for Hackers* by George-Bogdan Ivanov, a NLP expert. When something is written for Hackers there are two possibilities: it is a pragmatic book designed to help you build something practical or an excuse to avoid explaining h … | Continue reading
Introduction A transpiler is a program that can process code in a certain language and generate the corresponding code in another language. You can find also other terms being used, like source-to-source translator. When you may want to use a transpiler? Simply put, when you have … | Continue reading
SQL is a language to handle data in databases. However, it has limitations and you might need to parse SQL to get around them. This article will help you. | Continue reading
Introduction textX is a suite of Python modules and tools to quickly develop text-based domain-specific languages. Compared to heavyweight language workbenches such as Jetbrains MPS, Eclipse Xtext or Spoofax, textX is less powerful and not as feature-rich; however, it’s directly … | Continue reading
There are some ideas that are gaining popularity: blockchains and smart contracts are among them. If we can ignore the hype and the inflated expectations I think they maybe ideas with a strong potential impact. I do not want to talk about these technologies in general but just fr … | Continue reading
All the resources you need to learn how to build languages: tutorials, post, checklists, and a book. Learn how to build a complete programming language. | Continue reading
Introduction In this article, we’ll review JaRIKo, an open-source interpreter for a subset of the RPG programming language running on the Java Virtual Machine. People interested in legacy modernization techniques should find this interesting: as we’ll see in the course of the art … | Continue reading
Flex and Bison works, but every day they become less of a good choice. There are much better options and we will explain why. | Continue reading
An in-depth coverage of parsing terminology an issues, together with an explanation for each one of the major algorithms and when to use them | Continue reading
We explain what word2vec is and how to use it to create a cool reverse dictionary: so you can find a word from it description. | Continue reading
You can convert a PDF to Excel: you can extract tables both from textual PDFs and even from PDF that are just scanned images (if they are high quality). | Continue reading
How can we create a programming language in practice? Let's see the process to follow, without too much theory or too low level details | Continue reading
We will see a complete example on how to use Drools: describing the idea, setting up the project, writing the rules, writing the unit tests. Business rules are a powerfool programming paradigm which is not known by most developers. It is time to fix that. | Continue reading
The definitive tutorial on ANTLR4. Learn everything you need to know to use it; with code in Javascript, Python, Java and C#. Best practices included. | Continue reading
A guide to create programming languages presenting an organized list of selected articles, books, tutorials, and tools on designing languages and compilers. | Continue reading
We present a DSL to describe user interactions in a simple way. It can be used to write high level automation tests in the browser. It is more high level than Selenium. | Continue reading
This detailed guide described what are Domain Specific Languages, why to use them, which tools use to build them, present examples and a list of resources | Continue reading
We will design a Domain Specific Language to describe taxes and pension contributions. This DSL could be used to support accounting and all sort of financial calculations. | Continue reading
Telosys is an easy to use code generation tool. In this post we discuss about the benefits of code generation with the author of this tool, Laurent Guerin. | Continue reading
Best language for each situation: from Enterprise to Game Development. If you want to enter a new field or just want to know the reigning champions | Continue reading
This is an unbiased review of JArchitect. Let's see how it works in practice on a Java project. What kind of analysis we can perform and which bugs it has. | Continue reading
We were lucky enough to get an interview from Pedro J. Molina. He has been a well-known protagonist in the Language Engineering field for quite some time. For me it was such an honor to finally meet him, even if virtually. In this interview he tells us about his experience using … | Continue reading
Code generation is about generating code from a description or a model. It increases productivity, enforces consistency, simplify and make portable your code. However it increases complexity and maintenance costs. In this article we explain everything you need to know about it. | Continue reading