Core Java

Interesting things happening in Language Engineering

If you read this blog you will know that I strongly believe in the power of languages. So I am very biased, of course, but I have the feeling that the Language Engineering community is growing and more interesting stuff is coming up.

For this I thought it was a good idea to finish the year by looking at what is happening in the community and list a few things I found interesting.

ANTLR

First of all we got ANTLR 4.6. We got some hints at the beginning of December:

It should bring us significant performance improvements, thanks to contributions from Sam Harwell. In one of the next posts we will look at what else is new in ANTLR 4.6.

The ANTLR 4 target for C++ has been released. You can read more here. Recently it has also been included in the official distribution, as announced on the blog of Mike Lischke, the author of this great work. Thanks to him for sharing this with the community.

Recently I read some interesting short posts on ANTLR from Tobe O, a 17-years old developer. Take a look to his blog on medium: you will find posts on implementing string interpolation using ANTLR or his series on Creating a scripting language using ANTLR.

Finally an ongoing discussion: Listeners or Visitors? Different people have difference preferences and this post by Jakub Dziworski briefly compares them: Antlr 4 – Listener vs Visitor

Jetbrains MPS

In the last months I have noticed a growing activity on the forum. There are more and more questions coming up. However it seems that the people from Jetbrains are not as present as usual and many questions remain unanswered. We discussed this situation in a post on the forum itself.

I think that we as a community need to roll up our sleeves and start helping each other. And we should also produce much more content: sharing our experiences, advises, tricks, what worked for us and what did not. I wrote several posts on MPS this year and I plan to do my part by writing more next year.

There are others already writing posts on MPS. For example Eugen Schindler wrote How to write a dump of an MPS model to XML based on its structure. I am looking for more ways to make MPS interoperable with other tools. I started writing a library to process MPS models from Python, I should find the time to go back at it one day.

Xtext

This year the second editor of the book on Xtext from Lorenzo Bettini came out: you can read my review.

This year we have seen a new company joining the Language Engineering community: TypeFox. I interviewed one of the founders some months ago. They are focusing on Xtext, with many contributors to the project joining their company.

They seem to be working with the new Language Server Protocol doing interesting things like embedding a Monaco editor in a browser. Personally I am very interested in the idea behind the Language Server Protocol. I think it is leading us in the right direction, promoting interoperability and the birth of ecosystems around languages, by sharing the hard bits.

Ohm – A framework to build parsers

Finally a new contender in the Language Workbenches arena. I found out about it reading this post: Language Hacking in a Live Programming Environment. This post presents a live environment for building parsers. I think this kind of immediate feedback would help a lot of people learning about parsers. I personally prefer using long lists of tests for getting feedback on my parsers, but this approach could help speed up development in the initial phase.

It is available on GitHub: ohm project.

Conclusions

In Language Engineering we are moving from not enough happening to the point at which it is difficult to track everything going on and it is impossible to find the time to learn everything. It is sad but it also means that the language engineering field is very alive. Let’s see where 2017 brings us.

Reference: Interesting things happening in Language Engineering from our JCG partner Federico Tomassetti at the Federico Tomassetti blog.

Federico Tomassetti

Federico has a PhD in Polyglot Software Development. He is fascinated by all forms of software development with a focus on Model-Driven Development and Domain Specific Languages.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button