Xtext
Eclipse Xtext | |
---|---|
![]() | |
![]() Language Workbench/ Parsergenerator | |
Basisdaten | |
Erscheinungsjahr | 2006 |
Aktuelle Version | 2.4.0 (20. März 2013) |
Betriebssystem | plattformübergreifend |
Programmiersprache | Java[1] |
Kategorie | Framework |
Lizenz | Eclipse 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
- Sven Efftinge, Markus Volter, Arno Haase, Bernd Kolb: The Pragmatic Code Generator Programmer. TheServerSide.com, abgerufen am 3. Juli 2012.
- Sven Efftinge, Jan Köhnlein, Peter Friese: Build your own textual DSL with Tools from the Eclipse Modeling Project. Eclipse Foundation, abgerufen am 3. Juli 2012.
- Sven Efftinge: Fowler's DSL example with Xtext. sven efftinge's blog, abgerufen am 3. Juli 2012.
- Volker Koster: Implementation and Integration of a Domain Specific Language with oAW and Xtext. MT AG, abgerufen am 3. Juli 2012.
- Venkat Subramaniam: Creating DSLs in Java. JavaWorld.com, abgerufen am 3. Juli 2012.
Weblinks
- Homepage bei eclipse.org (englisch)
- Artikel: Goodbye XML – Befreiungsakt mit Xtext (deutsch)
Einzelnachweise
- ↑ The xtext Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
- ↑ Eclipse Modeling News. (eclipse.org [abgerufen am 4. März 2010]).
- ↑ Eclipse Indigo mit vielen Neuerungen für Java-Entwickler. (heise.de [abgerufen am 28. Juni 2011]).
- ↑ http://www.eclipse.org/org/press-release/20100322_awardswinners.php