holyjs HolyJS 2019 Мск (08.11.2019 — 09.11.2019)

Transpile anything to everything!


During her session, Anna will talk about classic compiler design and is going to explain how to extend Compass to support new languages.

Compass, the UI for MongoDB, is an Electron app that allows developers to visually develop aggregations and queries for their database. Right now it accepts these queries in the MongoDB Shell syntax, a JavaScript-based query language. However, developers use a wide range of programming languages in their apps, and constant context switching between languages can be painful.

To cure this pain, we wanted to allow users to export the queries they built-in Compass into whatever programming language they wanted. Even better, we wanted to also allow users to write their favorite language directly into Compass. To achieve these goals, we needed a way to translate query syntax in any programming language into query syntax in any other language, so we needed to write a multi-language-input to multi-language-output transpiler!

This talk will go through the technical design of the anything-to-anything pluggable transpiler and teach attendees how they can add their own favorite language to Compass. Anna will talk about classic compiler design principles and how she leveraged various compiler technologies to create a dynamic, extensible transpiler. Lastly, she’ll talk about how we can take this transpiler and apply it to an abundance of other use cases!

Anyone with an interest in compilers, parsers, Compass, MongoDB, ANTLR, or a general passion for complex technical problems is welcome. Anna will talk about classic compiler design without requiring attendees to be programming-language experts, although any knowledge of compiler implementations will be useful. Attendees will leave the talk knowing exactly how to extend Compass to support new languages and will hopefully be inspired to go out and add their favorite language to Compass!

This talk addresses both MongoDB-specific challenges as well as highly technical computer science problems. Attendees will learn not only about Compass itself but about compiler design. As developers, we use compilers every day, but it is not so often that we get the opportunity to actually write them, and compilers are awesome!

Комментарий программного комитета:

Анна работала с Mongoose, сейчас работает с Compass, графическим интерфейсом для MongoDB. Проблема создания любой ORM в том, что это необходимо делать для каждого языка и технологии. А что, если сделать один интерфейс, подходящий для всего? Анна поделится итогом — получилось или нет.