Logo Strumenta Strumenta
  • About us
    • How we work
    • Working with us
    • Our team
    • Corporate Resources
  • Services
    • Transpiler
    • Domain Specific Languages
    • Consulting & Coaching
    • ANTLR Consulting
  • Products
    • Parser Ready-to-go
    • ANTLR Video Course
    • ANTLR Cheetsheet & FAQ
  • Articles
  • Contacts
The tomassetti.me website has changed: it is now part of strumenta.com. You will continue to find all the news with the usual quality, but in a new layout.

Our articles

Here we talk about parsing, tools and libraries, natural language processing and Kotlin

Edited by Federico Tomassetti

Bridging the Gap between Textual and Projectional Editors

22 March 2023

Editor support for cross-language navigation

15 February 2023

  • ANTLR
  • Application modernization
  • Code processing
  • Consulting
  • Domain specific languages
  • Editors
  • Jetbrains MPS
  • Language design
  • Language Engineering
  • Language Workbenches
  • Miscellany
  • Model driven development
  • Open-source
  • Parsing
  • Software Development
  • Browse all

Parsing

Parsing is the analysis of an input to organize the data according to the rule of a grammar.
There are a few ways to define parsing. However the gist remain the same: parsing means to find the underlying structure of the data we are given.

A tutorial on how to write a compiler using LLVM

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 enough to understand how the LLVM infrastructure can […]

A Guide to Parsing: Algorithms and Terminology

A long-form explanation of the principles of parsing: the terms, the grammar formats, the algorithms.
We also create shorter articles to explain other important concepts related to parsing, such as the the difference between a compiler and an interpreter.

Domain specific languages

Domain specific languages are languages meant for one thing, but they do it perfectly: think HTML, which is designed to write web pages. This is in contrast with general programming languages, that can do anything, but require more effort.
They can massively increase your productivity and allow non-programmers to write code in a language that they understand.

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

Recognizing hand-written shapes programmatically: find the key points of a rectangle

What if you wanted to define programs by sketching on a whiteboard? You could use your sketches to define programs in a high level domain specific language, and the first step would be to recognize hand-written shapes.

Tools And Libraries

The right tool can make your life easier and improve your productivity, we share the ones we know and explain our readers how to use them.

Parsing In Python: Tools And Libraries

We have created a series of articles on the libraries and tools used for parsing in 4 languages: Java, C#, Python and JavaScript. These ranges from the big industry-ready tools, like ANTLR, to simpler libraries that are as easy to use as common regular expressions, but more powerful.

The ANTLR Mega Tutorial

A complete tutorial that explains everything you need to know to use ANTLR, a very powerful (and our favorite) parsing generator. It is written in Java, but it can create parsers also in C#, Python, JavaScript, Go, etc.

Programming languages

Many programmers think about creating their own programming language. You can read these articles to know how to get started. If you want a practical guide on the subject we have also wrote a book: How to create pragmatic, lightweight languages.

68 Resources To Help You To Create Programming Languages

To create the best work for our clients we have to keep updated on how to design and create software. In this article we share the resources we have found to create programming languages: from the design to the presentation.

The Difference Between a Compiler and an Interpreter

Understanding the difference between compilers and interpreters is a common issue for many developers. In this article we explain the main practical differences between the two.

Natural language processing

Natural language processing is the equivalent of parsing for the languages we use in our everyday life. It is the field that want to understand and analyze the words we wrote and speak.

Analyze and Understand Text: Guide to Natural Language Processing

A long-form overview of the field of Natural Language Processing: from explaining the simplest algorithms to presenting the most advanced libraries used to understand and analyze natural languages.

Creating a Reverse Dictionary

In this article we are going to see how to use Word2Vec to create a reverse dictionary. We are going to use Word2Vec but the same results can be achieved using any word embeddings model. Do not worry if you do not know what any of this means, we are going to explain it. A […]

Strumenta Tools to solve complex problems
Privacy Policy
P.IVA 11817320010
Company Information
  • Strumenta
  • Strumenta
  • Federico Tomassetti
  • Federico Tomassetti