• 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: Typesystem Aspect

We implement a type system for Entities Language in JetBrains MPS.


Remarks

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

Additional materials

  • Defining a type system for a language (from MPS Documentation)
  • Cookbook – Type System (from MPS Documentation)
  • Using type system (from MPS Documentation)
  • M. Voelter: Type systems for DSLs (video)
  • Z. Grossbart: An Introduction To Programming Type Systems
  • J. Kyle, Type Systems: Structural vs. Nominal typing explained
Theory of type systems
  • L. Cardelli: Type Systems
  • So you want to learn type theory…
  • B. C. Pierce: Types and Programming Languages (book)
  • P. Snively and A. Laucher: Type Systems – The Good, Bad and Ugly (video)
  • R. Tate: Types and Semantics, Cornell University
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