From Wikipedia (De) - Reading time: 2 min
| JetBrains
| |
|---|---|
| Basisdaten
| |
| Entwickler | JetBrains |
| Erscheinungsjahr | Januar 2005 |
| Aktuelle Version | 2022.2[1] (1. November 2022) |
| Betriebssystem | MacOS, Windows, Linux |
| Programmiersprache | Java[2] |
| Kategorie | Language Workbench |
| Lizenz | Apache-Lizenz, Version 2.0[3] |
| deutschsprachig | nein |
| www.jetbrains.com/mps/ | |
JetBrains MPS ist eine Language Workbench zur Metaprogrammierung die von der Firma JetBrains entwickelt wird.[4]
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]
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.
Die folgenden Projekte setzen auf MPS auf: