Xtext

Eclipse Xtext

Screenshot

Language Workbench/ Parsergenerator
Basisdaten

Erscheinungsjahr2006
Aktuelle Version2.4.0
(20. März 2013)
Betriebssystemplattformübergreifend
Programmier­spracheJava[1]
KategorieFramework
LizenzEclipse Public License
xtext.org

Xtext ist ein Open-Source-Framework für die Entwicklung von Programmiersprachen sowie domänenspezifischen Sprachen (englisch domain specific language DSL) und ein Teil des Eclipse-Modeling-Framework-Projekts. Im Gegensatz zu normalen Parsergeneratoren wird bei Xtext nicht nur ein Parser generiert, sondern auch ein Klassenmodell für den abstrakten Syntaxbaum und ein in Eclipse integrierter Texteditor sowie die notwendige Infrastruktur für die Implementierung einer modernen Entwicklungsumgebung für die entwickelte Sprache bereitgestellt.

Geschichte

Die erste Version von Xtext wurde im Jahre 2006 im Rahmen des Projektes openArchitectureWare (oAW) veröffentlicht. In der darauf folgenden Zeit wurden mit jeder Version neue Funktionen und Konzepte integriert. In der Version 4.3 von oAW ist die letzte oAW-Version von Xtext enthalten. Seit Anfang 2008 wird Xtext unterhalb des Eclipse Modeling Project im Textual Modeling Framework (TMF) weiterentwickelt. Mitarbeiter der Firma itemis AG, darunter der ursprüngliche Architekt von Xtext, entwickeln hier eine neue Version des Frameworks. Das erste offizielle Release erfolgte am 16. Juni 2009, als Xtext in der Version 0.7.0 erschien[2]. Im Juni 2010 hat das Framework die Version 1.0 erreicht. Version 2.0 erschien am 27. Juni 2011 zusammen mit Eclipse 3.7 (Indigo) [3].

Funktionalität

Im Kern von Xtext steht die Grammatiksprache, mit der für EMF-Modelle eine textuelle Syntax definiert wird. Ein daraus mit dem Parsergenerator ANTLR generierter Parser erzeugt nun Modelle aus Texten, die der definierten Grammatik entsprechen. Sowohl der Parser als auch die EMF-Modelle können unabhängig von Eclipse verwendet werden. Weiterhin wird ein Texteditor generiert. Folgende Funktionen werden aus der Grammatik berechnet und können ggf. noch angepasst oder erweitert werden:

Weiterverarbeitung von DSL-Modellen

DSLs sind formale Sprachen und müssen daher ausführbar gemacht werden. Dies geschieht auf zwei unterschiedlichen Wegen:

  • Zur Codegenerierung bietet sich Xtend an, welches vom gleichen Team entwickelt wird und ebenfalls bei Eclipse Modeling gehostet ist. Bei der Codegenerierung können beliebige Zielplattformen verwendet werden.
  • Die Interpretation von EMF-Modellen muss mit einer zur Java Virtual Machine kompatiblen Sprache geschehen, da EMF und Xtext bisher nur in Java implementiert sind. Die Zielplattform ist daher auf diese Sprachen eingeschränkt.

Auszeichnung

  • Eclipse Community Awards 2010: „Most Innovative New Feature or Eclipse Project“ [4]

Literatur

Einzelnachweise

  1. The xtext Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
  2. Eclipse Modeling News. (eclipse.org [abgerufen am 4. März 2010]).
  3. Eclipse Indigo mit vielen Neuerungen für Java-Entwickler. (heise.de [abgerufen am 28. Juni 2011]).
  4. http://www.eclipse.org/org/press-release/20100322_awardswinners.php