Speaker

Federico Tomassetti

Federico Tomassetti

Language Engineering Architect

Turin, Italy

Federico Tomassetti is the founder of Strumenta, a company specialized in Language Engineering. At Strumenta he builds Domain Specific Languages, editors, parsers, compilers, and interpreters. In other words languages and tooling to help professionals to work betterm.

After getting his PhD he has worked in Italy, Germany, Ireland, and France. He worked for small companies and large ones like TripAdvisor and Groupon.

Area of Expertise

  • Information & Communications Technology

Topics

  • Domain Specific Languages
  • JetBrains MPS
  • ANTLR
  • Parsing
  • Compilers
  • Interpreters

Domain Specific Languages, in practice

Let's see what impacts DSLs can have when use in different contexts: from startups writing medical application to the pubblic administration of Luxembourg.

We will discuss how DSLs can be designed and implemented and what are the consequences of putting them at the center of the software development effort.

Building Languages Using Kotlin

Languages are the tools that best determine our productivity. As developers we are in the position of forging such tools and all the other elements they need for support: compilers, editors, simulators and more.

Developing such an ecosystem used to require a huge effort, but today we can use our new super-power: Kotlin. By leveraging its concise syntax and its metaprogramming capabilities, we can create Domain Specific Languages at a much lower cost.

This means we can use DSLs in a context where it was not economically sensible before. With a pragmatic approach to building DSLs.

From Ubiquitous Language to Domain Specific language

In Domain Driven Design developers and domain experts use a shared (“ubiquitous”) language to build a model. Then software is implemented, using the model as a guide. In the implementation the model is formalised by using a general purpose computer language. That language is no longer readable by most domain experts.

A domain specific language (DSL) is a formalisation of the ubiquitous language, that is still readable by the domain experts. It can be used to validate the model and to produce the final software for the end-user. This has a lot of benefits, especially when the model changes frequently.

When do the benefits of using a DSL outweigh the costs? We'll use a model to estimate that for your domain.

Then we'll build a DSL from an example domain model. We'll look at structure, types, behaviour, syntax and semantics. We'll build an editor to work with the language and validate the model. And we'll show how end-user software is generated from that model. In this hands-on we'll walk through the whole process, from domain concepts to a working DSL, but the emphasis will be on creating the DSL.

We'll show several tools of the trade: grammar based, like Xtext, or projectional, like JetBrains MPS.

Federico Tomassetti

Language Engineering Architect

Turin, Italy

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top