Kleine Helfer

Xtext 1.0 für domänenspezifische Sprachen

01.07.2010
Von Andreas Graf und Sven Efftinge
Die Zahl der Softwareprojekte, die modellbasierend entwickeln, steigt stark an. Vermehrt setzen sie inzwischen mit "Xtext" auf domänenspezifische Sprachen.

Im Gegensatz zu allgemeinen Programmiersprachen wie Java haben domänenspezifische Sprachen den Vorteil, dass sie genau auf einen Sachverhalt zugeschnitten sind. Dadurch können dieselben Sachverhalte wesentlich kompakter und lesbarer festgehalten werden. Dies vermindert die Einarbeitungszeit und verbessert die Kommunikation im Projekt.

Eines der bekanntesten Werkzeuge, um eigene Programmiersprachen und domänenspezifische Sprachen zu definieren, ist "Xtext". Mit der neuen Version von Eclipse "Helios" ist Xtext nun in Version 1.0 verfügbar. Seit dem letzten Release wurden über 80 neue Funktionen entwickelt. Mit der neuen Version lassen sich nach wie vor in kürzester Zeit kleine domänenspezifische Sprachen entwickeln. Es ist nun aber auch möglich, umfassende, ausgewachsene Programmiersprachen umzusetzen.

Die Anwendung des Xtext-Frameworks ist denkbar einfach. Basierend auf einer sehr kompakten und leserlichen Grammatikbeschreibung, stellt das Framework eine umfangreiche Sprachinfrastruktur zur Verfügung. Diese beinhaltet sowohl Parser und Linker, als auch eine komplette Eclipse-basierende IDE-Integration. Der komfortable Texteditor bietet dem Anwender alle Funktionen, die Softwareentwickler heute von einer modernen Sprach-IDE erwarten. Alle Funktionen wie Auto-Vervollständigung oder Syntax Coloring sind speziell auf die Sprache zugeschnitten. Die flexible Architektur von Xtext ermöglicht dem Anwender, alle Aspekte der Sprachinfrastruktur den individuellen Bedürfnissen anzupassen.

Beispiel

Das folgende Beispiel zeigt eine Sprache für die Modellierung von Bus-Topologien mit Steuergeräten (ECUs) und Bussen:

ecu Gateway;

ecu Navigationssystem;

ecu Motorsteuerung;

bus Hauptbus type CAN has Gateway, Motorsteuerung;

bus Entertainmentbus type MOST has Gateway, Navigationssystem;

Die Vorteile

Textuelle Modelle bieten im Vergleich zu grafischen viele Vorteile bezüglich Austauschbarkeit, Versionierung und Vergleichbarkeit. Die erstellten Modelle können via Codegenerierung in lauffähigen Code, Dokumentation oder andere Artefakte transformiert werden. Falls doch einmal eine grafische Darstellung gewünscht ist, lässt sich diese zum Beispiel anhand des "Graphical Modeling Framwork" oder des neuen Eclipse-Projekts "Graphiti" erzeugen und mit Xtext integrieren. So können Anwender je nach Vorlieben zwischen textueller und grafischer Notation wählen.

Xtext wird heute in vielen Projekten industriell eingesetzt und hat sich als ausgereiftes Werkzeug bewährt. Obwohl etwas Einarbeitung erforderlich ist, gelangt man schnell zur Definition eigener Modellsprachen. Xtext ist unter der Eclipse Public Licence frei verfügbar.

CW-Fazit

Immer mehr Softwareentwickler nutzen und definieren domänenspezifischen Sprachen für besonders wichtige Aspekte eines Softwaresystems. Dies erlaubt es ihnen das jeweilige Problem in prägnanter Form zu behandeln. Xtext ist ein einfaches und effizientes Tool, um spezialisierte Sprachen zu entwickeln.