- Xtext
-
Eclipse Xtext
Language Workbench/ ParsergeneratorBasisdaten Aktuelle Version 2.1
(2. November 2011)Betriebssystem plattformübergreifend Kategorie Framework Lizenz Eclipse Public License 2.0 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.
Inhaltsverzeichnis
Geschichte
Die erste Version von Xtext wurde im Jahre 2006 im Rahmen des openArchitectureWare-Projektes 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[1]. 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) [2].
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:
- Syntax Coloring
- Autovervollständigung
- Statische Analyse
- Outline View
- Quellcode Navigation
- Code-Faltung
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 Xpand 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" [3]
Literatur
- Efftinge, Völter, Haase, Kolb – The pragmatic code generator programmer – the ServerSide
- Friese, Efftinge, Köhnlein – Build your own textual DSL with Tools from the Eclipse Modeling Project
- Martin Fowlers DSL-Beispiel implementiert in Xtext
- Implementation and Integration of a Domain Specific Language with oAW and Xtext by Volker Koster (PDF-Datei; 1000 kB)
- Creating DSLs in Java, Part 3: Internal and external DSLs - Parse and refine an external DSL with openArchitectureWare's Xtext By Venkat Subramaniam, JavaWorld.com, 08/19/08
Weblinks
- Homepage bei eclipse.org (englisch)
- Artikel: Goodbye XML – Befreiungsakt mit Xtext (deutsch)
Einzelnachweise
- ↑ Eclipse Modeling News. (http://www.eclipse.org/modeling/tmf/news-whatsnew.php#build, abgerufen am 04. März 2010).
- ↑ Eclipse Indigo mit vielen Neuerungen für Java-Entwickler. (http://www.heise.de/newsticker/meldung/Eclipse-Indigo-mit-vielen-Neuerungen-fuer-Java-Entwickler-1265070.html, abgerufen am 28. Juni 2011).
- ↑ http://www.eclipse.org/org/press-release/20100322_awardswinners.php
Kategorien:- Programmiersprache
- Eclipse
- Java-Programmierwerkzeug
- Computerlinguistik
Wikimedia Foundation.