Achtergrond

Een DSL-editor in enkele minuten

Koen Vervloesem
Leestijd: 7 minuten

Domeinspecifieke talen zijn in veel gevallen handige instrumenten in modelgedreven softwareontwikkeling. Een tool waarover je tegenwoordig vaak hoort in de context van DSL‘s is XText, een onderdeel van de opensource ontwikkelomgeving Eclipse. Tijd om hier eens naar te kijken en enkele gebruikers aan het woord te laten.

Een domeinspecifieke taal (domain-specific language of kortweg DSL) wordt, zoals het woord het al zegt, ontwikkeld om problemen in een specifiek domein op te lossen. Door zich op het domein toe te spitsen, kan een DSL expressiever zijn dan een algemene programmeertaal. En doordat de code op het abstractieniveau van het probleemdomein wordt uitgedrukt, is deze quasi zelfdocumenterend en eenvoudig te begrijpen door domeinexperts. Dat heeft een positief effect op de kwaliteit, onderhoudbaarheid en herbruikbaarheid van de code. Een nadeel is dat een DSL ontwikkelen voor een meer dan triviale taal heel wat tijd vraagt, en dat je het gebruik van de taal dan nog moet kunnen integreren in je favoriete ontwikkelomgeving.

Een van de tools die een totaaloplossing voor DSL‘s wil bieden en dit volledig integreert in de ontwikkelomgeving Eclipse is XText. Dit opensource pakket wordt ontwikkeld door het Duitse bedrijf Itemis, dat zich focust op modelgedreven softwareontwikkeling. In XText definieer je een domeinspecifieke taal, waarna het programma op basis van de grammatica een volledige taalinfrastructuur genereert, zoals parsers, syntax checking, linkers, compilers, een AST-metamodel en een Eclipse-teksteditor. Zo biedt de editor voor je taal out-of-the-box syntax highlighting en code completion, die eventueel zelf nog naar smaak zijn aan te passen. Verder zijn alle features die je gewoon bent van de Eclipse-editor nog altijd aanwezig. XText is onderdeel van het Eclipse Modeling Project en is nauw geïntegreerd met de andere tools hierin, zoals XPand en XTend. Eclipse 3.6.0 (’Helios‘) van juni 2010 luidde XText 1.0 in.

This article is exclusively available to premium members of Bits&Chips. Already a premium member? Please log in. Not yet a premium member? Become one and enjoy all the benefits.

Login

Related content