addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupsimageimagesinstagramlinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1outlookpersonJoin Group on CardStartprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

JetBrains Meta Programming System by Fabien Campagne

Introduction to the JetBrains Meta Programming System
by Fabien Campagne, PhD 

This presentation will describe the JetBrains Meta Programming System (MPS) and provide an introduction to the design and use of Composable Languages. Traditional programming languages, from Fortran and COBOL in the 50s to the modern languages like Java, Python, R or GO, have created islands of separate languages that do not work well together. Try writing a program in Java that takes advantage of the R syntax for vector manipulation, or any other program where you would like to combine syntax from two major programming languages. 

In contrast to traditional programming languages, a language workbench such as MPS makes it possible to write programs using the combination of languages that best fit the problem at hand. New mini-languages can be defined as needed to support new problems and these mini-languages will work seamlessly with other languages available in the platform. 

When working with the JetBrains Meta Programming System you can use and combine different languages to solve a problem. You can also create simple languages (e.g., Domain Specific Languages) or extend existing ones when the languages available do not exactly meet the evolving needs of the problem at hand. The languages that you create with MPS will integrate nicely with languages developed by others. 

MPS is distributed under the Apache 2.0 license and can be obtained from This talk will provide an introduction to meta programming and present examples of applications. The talk will be followed by a demonstration. 

The speaker has recently published an introductory book describing MPS. More details can be found at and in this interview:

Graciously hosted by The Ladders.

Join or login to comment.

  • Fabien C.

    In case the wifi might be a bit slow, I'd suggest to download and install MPS before the meetup:

    We'll use it during the demo after the talk.

    1 · May 12, 2014

  • Anne M.

    With the Jetbrains Metaprogramming MPS, is it possible to add syntax to turn imperative languages into more-functional representations ?

    May 9, 2014

    • Fabien C.

      Yes, a language workbench lets you extend a specific language to define your own syntax and behavior. You can then, for instance, mix imperative and functional. The talk will discuss examples of this.

      1 · May 9, 2014

  • Joe F.

    Great topic, any chance this will be recorded?

    1 · May 5, 2014

    • Fabien C.

      I have no plan to record, but if somebody in the audience wants to record the talk, I am happy to give permission to record and post it.

      May 6, 2014

  • Raymond P.

    I would have liked to go but, unfortunately, the date conflicts with the LispNYC meeting.

    May 6, 2014

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy