JetBrains MPS
JetBrains MPS ist eine Language Workbench zur Metaprogrammierung die von der Firma JetBrains entwickelt wird.[4]
JetBrains | |
---|---|
Basisdaten | |
Entwickler | JetBrains |
Erscheinungsjahr | Januar 2005 |
Aktuelle Version | 2020.1.2[1] (22. Juni 2020) |
Betriebssystem | MacOS, Windows, Linux |
Programmiersprache | Java[2] |
Kategorie | Language Workbench |
Lizenz | Apache-Lizenz, Version 2.0[3] |
deutschsprachig | nein |
www.jetbrains.com/mps/ |
Geschichte
JetBrains MPS wurde im Juni 2005 im Rahmen eines Early Access Programms der Öffentlichkeit vorgestellt. Martin Fowler veröffentlichte im selben Monat einen Artikel über MPS.[5] Die Version 1.0 wurde vier Jahre später im Jahr 2009 veröffentlicht.[6]
Funktionalität
MPS steht für Meta Programming System und folgt dem Prinzip der sogenannten sprachorientierten Programmierung. Probleme werden dabei nicht in einer General Purpose Language, sondern mittels einer auf einen Spezialbereich zugeschnittenen domänenspezifischen Sprache (kurz DSL) gelöst. Domänenspezifische Sprachen sind Programmiersprachen die für ein spezielles Anwendungsgebiet optimiert sind. Insbesondere sind die von der DSL verwendeten Abstraktionen und Notationen direkt an der Domäne ausgerichtet. Um den Aufwand zur Implementierung von DSLs zu reduzieren, kommen sogenannte Language Workbenches zum Einsatz.
MPS ist eine solche Language Workbench und zeichnet sich durch einen projizierenden Editor aus, der unmittelbar auf dem abstrakten Syntaxbaum der Sprache arbeitet und daher ohne Grammatik und Parser auskommt.[7] Dieser Editor erlaubt das Mischen von grafischen, textuellen, tabellarischen und mathematischen Notationen und bietet weitreichende Unterstützung für Sprachmodularisierung und -erweiterung.[8] Dies führt dazu, dass sich Sprachen einfach modularisieren und kombinieren lassen. MPS wird standardmäßig mit Java ausgeliefert, sodass sich auch Java inkrementell erweitern lässt. Außerdem können Entwickler mit MPS separate DSLs bauen.
Anwendung
Die folgenden Projekte setzen auf MPS auf:
- JetBrains YouTrack: Bugtracker, der vollständig mit MPS implementiert wurde.[9]
- Die Modellwerkstatt: Domänenspezifische Sprache zur Datenbankmodellierung.[10]
- mbeddr: Integrierte Entwicklungsumgebung mit Spracherweiterungen für C zur Entwicklung von eingebetteten Systemen.[11]
- mps-xhtml-language: Integrierte Entwicklungsumgebung für XHTML.[12]
- Not Your ordinary Shell, Eine Unix-Shell-Implementierung.[13]
- PEoPL: Tool zum Entwickeln von Software-Produktlinien[14]
Einzelnachweise
- confluence.jetbrains.com.
- The MPS Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 21. September 2018).
- confluence.jetbrains.com. (abgerufen am 19. Februar 2019).
- JetBrains MPS. Abgerufen am 18. Oktober 2016.
- A Language Workbench in Action - MPS. Abgerufen am 17. November 2016.
- MPS 1.1 New Features Preview. Abgerufen am 17. November 2016.
- Fabien Campagne: MPS Language Workbench Programming System, CreateSpace Independent Publishing Platform, ISBN 1-5305-3335-X
- Markus Völter, Sascha Lisson: Supporting Diverse Notations in MPS’ Projectional Editor. (PDF) Abgerufen am 17. November 2016.
- JetBrains Youtrack. Abgerufen am 17. November 2016.
- Die Modellwerkstatt. Abgerufen am 17. November 2016.
- mbeddr. (Nicht mehr online verfügbar.) Archiviert vom Original am 20. November 2016; abgerufen am 17. November 2016. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- mps-xhtml-language. Abgerufen am 17. November 2016.
- NYoSh – Not Your ordinary Shell. (Nicht mehr online verfügbar.) Archiviert vom Original am 15. November 2016; abgerufen am 17. November 2016. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- PEoPL | Projectional Editing of Product Lines. Abgerufen am 14. Juni 2017 (amerikanisches Englisch).