Lintopdrachten overslaan
Verdergaan naar hoofdinhoud
Betawetenschappen
Promotie

Nieuwe benadering voor gebruik domeinspecifieke programmeertaal

Marcos Viera bedacht een nieuwe benadering voor het gebruik van een domeinspecifieke programmeertaal (Domain Specific Language, DSL). Een DSL is een programmeertaal die op een specifiek toepassingsgebied is toegesneden. De benadering van Viera combineert het implementatiegemak van een gasttaal met de voordelen van een echte DSL.

Het bieden van ondersteuning bij het gebruik van een DSL is geen sinecure: telkens moet een volledige ‘vertaler’ worden geschreven. De vertaler beeldt de DSL af op een code die door een computer kan worden verwerkt.

Daarom wordt een DSL ook wel ingebed in een bestaande taal, gebruikmakend van de taalconstructies die deze gasttaal al biedt, zoals functies, combinatoren of macro's. Dit levert het voordeel van een DSL in de vorm van een bibliotheek uitgedrukt in de gasttaal.

Dit levert echter weer een ander probleem op. Omdat nieuwe constructies eerst worden afgebeeld op bestaande constructies, is de uiteindelijke feedback van de compiler, bijvoorbeeld over geconstateerde fouten, uitgedrukt in termen van de gasttaal.

Viera bedacht daarom een benadering waarbij de gasttaal zelf gemakkelijk uitgebreid kan worden met nieuwe taalconstructies. Hij ontwikkelde een aantal vertalerbouwtechnieken (Compositional Compiler Construction), die de voordelen van een echte DSL combineren met het implementatiegemak van het gebruik van een gasttaal. Hierbij worden vertalers samengesteld uit apart vertaalde, statisch getypeerde ‘taal-definitie-fragmenten’.

Voor deze vertalerbouwtechnieken gebruikt Viera een collectie EDSL's uitgedrukt in de moderne functionele programmeertaal Haskell. Zowel syntax als semantiek van de door hem ontwikkelde (uitbreidbare) talen zijn normale Haskell-waarden, die kunnen worden gedefinieerd, samengesteld, getransformeerd, geparameteriseerd en geïnstantieerd. Het gebruik van Haskell garandeert de consistentie-eigenschappen van de geconstrueerde vertalers.

Datum en tijd: 8/3/2013 16:15
Locatie: Academiegebouw, Domplein 29, Utrecht
 
Promovendus: Marcos Viera
Faculteit: Faculteit Bètawetenschappen
Proefschrift: First Class Syntax, Semantics and Their Composition
Promotor 1: Prof. dr. Doaitse Swierstra
Promotor 2: Prof. dr. Alberto Pardo