Access Keys:
Skip to content (Access Key - 0)

Language-Oriented Programming in Action

An Introduction to MPS - Meta Programming System


JetBrains Meta Programming System (MPS) is an open-source framework addressing the task of creation, extension and combined use of Domain Specific Languages (DSL's). Primarily focused on IDE/code-generation features for new languages, this framework allows you to dynamically create extensions to existing languages and immediately use new language constructions in program code. JetBrains MPS implements Language Oriented Programming (LOP) ideas, which are gaining more and more attention today. In other words, MPS is a reference implementation of the future software development paradigm.

During this hands-on session, participants will be guided through a new language creation in MPS, which will help them better understand the MPS approach and learn its basic features, as well as try the recently released DSL debugger. You will be able to ask MPS developers deeply technical questions, and at the end we are planning an informal discussion about LOP in general.


Alex Shatalin is the JetBrains MPS project lead. Before joining JetBrains MPS one year ago, Alex worked as a principal engineer at the Borland Together modeling department, participating in Borland DSL toolkit design and development, open source Eclipse Graphical Modeling Framework development, and in various other MDA/DSL-based application development projects.

Vadim Gurov is a senior software developer at JetBrains and the YouTrack project lead. He holds a PhD in Computer Science and has over ten years of web application development experience. Vadim believes that language-oriented programming is the next big thing in software industry, and works in touch with the MPS team to create DSLs for database and web development.

  • Bring your own laptop. Netbooks cannot be used for this lab!
  • Minimum hardware requirements: modern processor, 1.5Gb of memory.
  • Recommended hardware requirements: 3Gb of memory.
  • Install JDK 6.0
  • MPS 1.5.1 distribution will be provided on USB memory sticks, nevertheless we are asking you to download it from MPS download page
    ( and install in advance to save some lab time for more important stuff.

Do you like this talk?

Related Presentations

10 Years of The Java Specialists' Newsletter
Developing Substantial Java Desktop Applications
Instant Updates and Rollbacks in Production Applications
Java Puzzlers - Scraping the Bottom of the Barrel
Java SE The Road Ahead
Language-Oriented Programming in Action
Project Lambda To Multicore and Beyond
Reflection Madness
The Modular Java Platform
The state of Java SE 7

Search by Tag

Below are the 190 labels used in Devoxx 2010 listed alphabetically. Click on a label to see its associated content.
activiti, actors, adobe, agile, air, ajax, akka, alm, amazon, analysis, android, animations, annotations, apache, ast, asynchronous, atomsphere, authentication, authorization, authz, azure bayeux, birt, blackberry, bof, bpm caching, camel, cassandra, cdi, ci, clojure, closures, cloud, clusters, collaboration, collections, comet, conference
design, devops, dsl, duchess, dvcs, ec2, eclipse, ehcache, ejb3, ejb31 faces, fantom, findbugs, flash, flex, flex4, foss gae, gaelyk, gis, git, glassfish, google, grails, groovy, gui, guice, gwt
hadoop, hazelcast, hbase, hdfs, hibernate, hive, html, html5, http, hudson, infinispan, ioc, iphone, itext, izpack j2ee, java7, java8, javaee, javaee6, javafx, javaposse, javascript, javase, javase7, javase8, jax-rs, jax-ws, jdk, jdk7, jdk8, jms, jmx, jpa, jpa2, jquery, jsf, jsf2, jsonp, jsr299, jsr330, jug, jvm labs, lambda, loadui, lombok, mahout, mapreduce, maven, methodology, microsoft, mobile, modules, mongodb, morlocks, multicore, mylyn
news, nexus, no-sidebar, nosql, oauth, oltp, openam, openid, openjdk, openoffice, osgi parleys, patterns, pdf, performance, prototype, puzzlers, quickie, rails, repl, reporting, rest, ria, roo scala, scalable, seam, search, servlet, servlet3, soa, soloist, speakers, spock, spring, springmvc, sql, stm, struts, svn, symbian
tapestry, tdd, testing, tools, tools_in_action, twitter, uma, uml, university, url, visualvm, voldemort w3c, web20, webos, websockets, websphere, weld, wicket, ws-addressing, wtp, xfa, xhr, xml
Adaptavist Theme Builder Powered by Atlassian Confluence