Incrementele taalgebaseerde tools

Matthijs Kuiper
Rijksuniversiteit Utrecht, Department of Computer Science
<kuiper@cs.ruu.nl>

In deze lezing presenteren we een generator voor interactieve taalgebaseerde tools. De tools die we voor ogen hebben laten de gebruikers hun programma editen en transformeren en geven daarnaast feedback over eventuele fouten in het programma. Voorbeelden van tools zijn programmeeromgevingen en document-processors waarmee geavanceerde wiskundige documenten zijn te produceren. Verder bieden de tools meerdere views van het programma. Zij kunnen een textuele view presenteren, zoals normale text editors dat doen, maar bijvoorbeeld ook een call-graph van het programma.

Het begrip taal en programma moeten hier ruim worden opgevat. Een programma kan een normaal C programma zijn. Maar ook een wiskundige formule of zelfs de parameterlijst van het Unix find commando zijn als programma op te vatten.

We zullen in dit verhaal aandacht besteden aan lrc, een generator voor taalgebaseerde tools. Deze generator construeert incrementele tools, dat wil zeggen tools die na een kleine aanpassing aan het programma op een efficiënte wijze de effecten van de aanpassing berekenen. Gegenereerde tools hebben geavanceerde interfaces en deze interfaces worden berekend, wat betekent dat de interface af kan hangen van het programma dat ge-edit wordt. Dit maakt het mogelijk om gebruikers krachtige faciliteiten te bieden voor het manipuleren van programma's.

Tools worden gespecificeerd in een declaratief formalisme. Doordat lrc specificaties uitgebreid analyseert, kan lrc efficiënte tools genereren.

We zullen uitleggen hoe tools gegenereerd worden, hoe tools efficiënt incrementeel kunnen werken en hoe interfaces berekend worden. Aan de hand van voorbeelden laten we zien hoe je met lrc krachtige en makkelijk te gebruiken tools kunt bouwen.



Ga naar vorige abstract, volgende abstract of terug naar de inhoudsopgave.


Mon Oct 21 14:22:48 MET DST 1996