Co-founder of Strumenta. Essays on software languages, legacy systems and the craft of building tools.

274 articles · since 2009

A Torino street seen from below
Language engineering · 1 min · 252 words · 40 of 40 in this topic · by

Using a language workbench for language integration

Nowadays each project is realised using a plethora of languages. Think about some classical scenarios:

  • A web application: Css, Javascript, Html and a general purpose language for server side elaborations (for example Java)
  • A Java framework using XML for configuration
  • SQL snippets embedded in a general purpose language

In this scenarios different languages have to interact. The problem is that normally development tools are able to verify just intra-language consistency: it means that an IDE is able to understand if in your java code you are referring to a Java class that does not exist (maybe because you misspelled the name). IDEs are not able to verify inter-language consistency, so for example it does not know if the XML configuration file contains the name of an existing Java class or not. This is a problem of language integration.

I think language workbenches permit to improve a lot language integration, with a limited effort.

Still there is a lot to be done.

Me, Antonio Vetrò, Marco Torchiano, Markus Völter and Bernd Kolb got a paper accepted at MiSE@ICSE’13 about this topic. In the paper we:

  • discuss about the problem of language integration in different scenarios,
  • refer to some previous work (from me, Vetrò and Torchiano) which starts an empirical evaluation of  the issue,
  • present a prototypal micro-implementation of a solution using Jetbrains MPS,
  • present a research agenda for language integration.

Screenshots and more details are on the paper (available as PDF).archived copy

Federico Tomassetti

I build parsers, transpilers and languages for people whose work is too specific for off-the-shelf software. I co-founded Strumenta, in Torino.

Reply by email · I read everything.

If this was useful, there are more on the same problem.

More in Language engineering

Using Language Engineering to Build a Smarter RAG for Code 28 min read · code inside Automatic Code Refactoring with AI 21 min read · code inside Contributing Semantic Highlighting to Kolasu Language Servers 7 min read

A legacy estate you need to understand before you commit.

See how Strumenta works

Disclosure — Strumenta is a company I co-founded.

One letter when there is something worth sending.

Written by Federico · Torino

Scroll to Top