Want to learn more about DSLs, parsers, interpreters, compilers and language design?
Attending the Language Workbench Challenge & SLE at SPLASH 2016

Attending the Language Workbench Challenge & SLE at SPLASH 2016

I have attended an academic conference for the first time after leaving the Academia. It was also the first time that I paid for myself (or more precisely: my own business paid for me :D) and it was definitely worthy. During the time at was pursuing my PhD I attended a few conferences but this […]

Generate diagrams from C# source code using Roslyn

Beyond the source code Last week we have seen how to use Roslyn to rewrite source code to your liking. That’s all well and good, but it’s not the only thing you can do when you have a compiler open and ready to do your bidding. Another possibility is to leverage the knowledge that the […]

Resolve method calls in Java code using the JavaSymbolSolver

Why I created the java-symbol-solver? A few years ago I started using JavaParser and then I started contributing. After a while I realized that many operations we want to do on Java code cannot be done just by using the Abstract Syntax Tree produced by a parser, we need also to resolve types, symbols and […]

Getting started with Roslyn: transforming C# code

The code for this post is on GitHub: getting-started-roslyn Under the hood Making a programming language actually useful is not simply about designing it well. It is also about providing supporting tools around the language: compilers, obviously, but also editors, build systems, etc. There are few languages that give you tools to play under the hood. […]

Review of the second edition of Implementing Domain-Specific Languages with Xtext and Xtend

Review of the second edition of Implementing Domain-Specific Languages with Xtext and Xtend

I am a proud owner of the first version of this book and I intended to buy a copy of the second edition at some point. So when I was contacted by the publisher to write a review of the second edition I was very happy to accept the offer. Thank you to the author, Lorenzo […]

How to recognize dates in PDFs

How an engineer is supposed to survive accounting One of the “pleasures” of having your own business is dealing with accounting. Now, to survive I tried a few things like: generating invoices for my clients processing bank statements One boring thing to do is to organizing receipts and invoices I had to pay: travel expenses, […]

Generating bytecode

In this post we are going to see how to generate bytecode for our language. So far we have seen how to build a language to express what we want, how to validate that language, how to build an editor for that language but yet we cannot actually run the code. Time to fix that. […]

Building a compiler for your own language: validation

So you have parsed your code and built a clean AST for it. Now it is time to check if what the user has expressed make sense at all. We should perform validation, identifying semantical errors, to communicate together with lexical and syntactical errors (provided by the parser). This post is the part of a […]

Building a compiler for your own language: model-to-model transformations

Most of the work done in tools supporting a language consists in manipulating the AST. In this post we are going to see how to perform transformation and processing on the Abstract Syntax Tree through model-to-model transformations. These techniques will be useful to perform operation like: validation: finding errors in the AST remove syntax sugar: […]

Building a compiler for your own language: from the parse tree to the Abstract Syntax Tree

In this post we are going to see how process and transform the information obtained from the parser. The ANTLR parser recognizes the elements present in the source code and build a parse tree. From the parse tree we will obtain the Abstract Syntax Tree which we will use to perform validation and produce compiled code. Note […]

Course: Using ANTLR Like A Professional

ANTLR Course Image

A complete video course on parsing and ANTLR, that will teach you how to build parser for everything from programming languages to data formats.
Taught from professionals that build parsers for a living.

Strumenta – Consulting

If you need help designing and developing DSLs, languages, parsers, compilers, interpreters, and editors you can check the services page of the Consulting studio we founded: Strumenta. Strumenta Logo

Blog Categories