• Home
  • DSLs: definition, implementation, design concerns
    • Zoo of domain-specific languages
    • DSLs: what, why, how
    • Fluent interfaces
    • External domain-specific languages
    • Implementing DSLs in practice
    • Language Workbenches
    • Design dimensions of DSLs
    • Design concerns for concrete syntax
    • DSL development
    • Worst practices
  • Tutorial on Xtext and Xtend
    • Xtext: writing a grammar
    • Xtext: Eclipse Modeling Framework
    • Xtend Programming Language
    • Xtext: validation, quickfixes, custom formatting
    • Xtext: type checking and scoping
    • Xtext: code generation
    • Cheat sheet on Xtext Grammar Language
    • Cheat sheet on Xtend
  • Projectional editing and tutorial on JetBrains MPS
    • Projectional editing
    • JetBrains MPS: Structure Aspect
    • JetBrains MPS: Editor Aspect
    • JetBrains MPS: Typesystem Aspect
    • JetBrains MPS: code generation
  • Useful links
  • UTU 2020 (Moodle)
  • MODELS 2020
  • ABZ 2020 → 2021
  • FM 2021
  • About
  • Home
  • DSLs: definition, implementation, design concerns
    • Zoo of domain-specific languages
    • DSLs: what, why, how
    • Fluent interfaces
    • External domain-specific languages
    • Implementing DSLs in practice
    • Language Workbenches
    • Design dimensions of DSLs
    • Design concerns for concrete syntax
    • DSL development
    • Worst practices
  • Tutorial on Xtext and Xtend
    • Xtext: writing a grammar
    • Xtext: Eclipse Modeling Framework
    • Xtend Programming Language
    • Xtext: validation, quickfixes, custom formatting
    • Xtext: type checking and scoping
    • Xtext: code generation
    • Cheat sheet on Xtext Grammar Language
    • Cheat sheet on Xtend
  • Projectional editing and tutorial on JetBrains MPS
    • Projectional editing
    • JetBrains MPS: Structure Aspect
    • JetBrains MPS: Editor Aspect
    • JetBrains MPS: Typesystem Aspect
    • JetBrains MPS: code generation
  • Useful links
  • UTU 2020 (Moodle)
  • MODELS 2020
  • ABZ 2020 → 2021
  • FM 2021
  • About

Domain-specific languages

Follow @mikhail_barash

JetBrains MPS: Structure Aspect

In this part, we introduce JetBrains Meta Programming System (MPS).
We start implementing Entities Language in MPS.


Remarks

This part is based on F. Campagne’s book The MPS Language Workbench, volume 1.

Additional materials

  • Fast track to JetBrains MPS
  • Shapes – an introductory MPS tutorial
  • JetBrains MPS User Guide
  • MPS project structure (from MPS Documentation)
  • MPS Structure Aspect (from MPS Documentation)
  • SModel Language (from MPS Documentation)
  • MPS common language patterns (from MPS Documentation)
  • M. Fowler: A language workbench in action – MPS
  • V. Pech, A. Shatalin, M. Voelter: JetBrains MPS as a tool for extending Java
  • Lessons learned from developing mbeddr: a case study in language engineering with MPS
  • A. Gagnon: Creating a simple language using JetBrains MPS
  • Grammar to JetBrains MPS Convertor (thesis)
  • M. Lombardo: Grammar and tools to describe a parser-based language with respect to projectional editing (GitHub)
  • F. Campagne: ANTLR_MPS (GitHub)
  • M. Boersma: Code generation with MPS for the uninitiated and/or textually inclined
  • “What are the main differences between Jetbrains’ MPS and Eclipse Xtext?” (informal discussion on Stack Overflow)
  • (in German) M. Voelter: Java Sprachentwicklung mit JetBrains MPS
Cheat sheet on Xtext

Cheat sheet on Xtend

A tale about domain-specific languages

Introductory article about JetBrains MPS

ABC of JetBrains MPS

Book on MPS (in progress)

Useful links

GitHub

Feedback in social media

Get in touch

Copyright © 2025 · All Rights Reserved · Domain-specific languages · Portfolio Theme Lite by Organic Themes

  • Advanced topics
  • Domänenspezifische Programmiersprachen – auf Deutsch