Presentation at LangDev Conference about MPS Interpreters

We gave a talk "Fast, integrated and debuggable Interpreters in MPS and beyond" at LangDev conference.

Links from the presentation:

F1RE bug interpreter

Interpretation enables highly interactive scenarios for many DSLs, such as live execution of test cases, consistency checks, or spreadsheet-like immediate evaluation and feedback. Implementing interpreters is usually boring: Each concept in the DSL needs a typically simple evaluator, and a lot of boilerplate infrastructure. This cries for an interpreter DSL!

After prototyping the first (and by now, widely used) interpreter in MPS, and showing a much faster proof of concept some time ago, we now present a well-engineered, fully integrated new language aspect for interpreters in Jetbrains MPS. The new language aspect:

  • is based on GraalVM’s Truffle framework to achieve top performance

  • runs on stock MPS

  • allows interactive debugging from within the same MPS instance

  • enables non-blocking asynchronous execution

  • can be re-used outside MPS. It follows the ideas outlined in an overview blog post.

This talk focuses on demonstrating the interpreter in action. We show aforementioned features, discuss known drawbacks and look at future enhancements. The implementation will be available as Open Source.