KNAW

Onderzoek

First Class Syntax, Semantics and Their Composition

Pagina-navigatie:


Wijzig gegevens


Titel First Class Syntax, Semantics and Their Composition
Looptijd 01 / 2009 - 03 / 2013
Status Afgesloten
Dissertatie Ja
Onderzoeknummer OND1332599
Leverancier gegevens METIS Universiteit Utrecht

Samenvatting

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.

Betrokken organisaties

Betrokken personen

Classificatie

D16200 Software, algoritmen, besturingssystemen

Omhoog
Ga terug naar de inhoud
Ga terug naar de site navigatie