What kind of commercial offerings around language engineering?

One of the aspect that intrigued me about Strumenta was the commercial focus of their offerings - before that I imagined language engineering as a topic reserved to academia (think Haskell, Scala) or enterprises so big to be almost institutions (think Java, C#). But I still would love a clearer picture about what business offerings are usually linked to language engineering and DSL. Also, which “tools of the trade” are peculiar and which are not used, compared to the development of general purpose languages? (I see ANTLR and MPS all over: is there more?).

Feel free to point me in the right direction if it has been answered before!

4 Likes

Well, actually, DSLs are everywhere, not just in academia or big businesses. And a DSL needs supporting tools (e.g., editors) to be used efficiently.

1 Like

Hi Gianmarco,
Actually yes, Language Engineering is a topic of interest for some companies or other organizations. It is not widespread but it can serve different needs.

If I think about our projects we mainly work in three areas:

  • Providing tools for better using existing languages
  • Helping in language migrations
  • Developing new languages (typically DSLs)

Providing better tools for existing languages can include providing tools to analyze codebases, editors, or new interpreters or compilers. It could also include creating debuggers and simulators. For example, we built several browser-based editors for existing languages. Or we built a JVM based interpreter for RPG, which permits to invoke Java or Kotlin code from RPG and viceversa.

To help on language migrations we build transpilers. For example, from VB to C++, or from PL/SQL to several targets.

Finally we can build DSLs to build digital therapeutics applications or for business applications used by the public administration.

I also did not expect this to be sustainable when I started working on my own, but I realized there was actually request and then I founded Strumenta, which is still a very small company but I hope it will grow over time. There are also other providers in this space. The largest vendor of DSLs is probably itemis, a German based company. They are doing amazing job especially in the JetBrains MPS space. There are also many companies offering transpilers as products and a few offering consulting around language migrations.

Of course a problem of this community is that many out there have no idea about the possibilities offered by Language Engineering, so they never look for these services. One of my obsessions is finding a way to better communicate what we do.

Regarding the tools of the trade, for us the main ones are ANTLR and JetBrains MPS, as you specified.

ANTLR is a parser generator which is quite powerful. There are many of other parser generators but ANTLR is for us the best alternative in practical every case we encountered.

Regarding the creation of DSLs, there is a category of tools named Language Workbenches. Among them MPS is the most mature for writing languages based on projectional editors. There is also Xtext which is quite strong for writing languages supported by textual editors.

Around these solutions there are libraries and frameworks. For example, we frequently use Kolasu in combination with ANTLR. Kolasu is a library for creating AST. Or we created a tool to document grammars written with ANTLR. In the MPS world there are several libraries provided by itemis which have been game changers in the field.

So this is an introduction to this topic but please feel free to ask any question and I can go deeper on specific points

7 Likes

Thanks for the answers. In particular thank you Federico for taking the time to explain thoroughly the subject! For some reasons I thought MPS was a sort of “Office for languages”, so that you couldn’t actually build products out of it, but I’m seeing I was wrong.

1 Like

Hi Gianmarco, you can build very real products using MPS. It takes a lot of specific expertise but it has been used for very concrete things. For example, the Dutch Tax Office developed an environment for defining tax calculations and this is used for calculating the tax returns in the Netherlands. Or we took part in a project to define digital therapeutics applications using DSLs we developed in MPS. Siemens is also using MPS extensively.
But yes, this is not publicized very well. We as a community are trying to figure out how to do that better :slight_smile:

2 Likes

Here is a commercial “box product” built on top of MPS: https://www.itemis.com/de/yakindu/security-analyst/

3 Likes

Very good example. I will refer to it in the future. I thought Yakindu was Eclipse based

We (http://swat.engineering) do everything with Rascal MPL (http://www.rascal-mpl.prg); both in reverse (code analysis) and forward engineering (DSLs). Rascal is an open-source project with contributors from both academic and industrial partners.

Too name another: I think Semanticdesigns is very succesful in applying their DMS tools to language design and also reverse engineering. That’s in the US and they used to have a branch in France (still?). I think their system is proprietary.

In Belgium there is another propietary system for language engineering from Raincode which they use to build all kinds of language processing tools.

I think StrategoXT and Spoofax are also used commercially and so is TXL. Both open-source.

5 Likes

There is also a commercial perspective on language engineering in the refactoring/re-engineering world where most language engineering systems are based on commercial toolkits. I seem to remember for example that William Griswold has a toolkit for all kinds of refactoring tools for legacy software systems. But you can also position Raincode and SemanticDesigns in that domain and how we use Rascal for that.

Software metrics and quality assessment is another sub-domain with a lot of commercial activity. Also based on language engineering, when analyzing source code comes into the picture. Of course these offerings (see for example Bitergia.com) complement their analyses with a lot of meta-data analysis. Fortunately such meta-data is often also a “language” to analyze.

3 Likes

And I should mention http://www.sig.eu ; all language engineering for software quality assessment and monitoring based on a proprietary system as well.

4 Likes

Related to commercial offerings, MetaEdit+ is used to create thousands of domain-specific modeling languages. Most of them are in-house and not public, but you can see 200+ public examples e.g. at Twitter feed. More public examples, use cases, references, analyst reports and trial version at metacase.com.

MetaEdit+ focuses on graphical, matrix and table based languages as these allow truly raising the level of abstraction closer to the user familiar representations that is above the traditional linear text representation. This modeling approach provides also benefits like collaborative editing, reuse and language evolution that are not typical in classical textual DSL environments.

6 Likes

When it comes to DSL’s, the phrase “write less, do more” `sound very much applicable to language engineering.

3 Likes

Related to this, at the next virtual meetup we plan to discuss how we could better promote DSLs. More details here: Marketing Virtual Meetup