%Nr: DS-94-02 %Auteur: Jan Willem Cornelis Koorn %Titel: Generating Uniform User-Interfaces for Interactive Programming Environments Samenvatting: De ASF+SDF Meta-omgeving is een interactieve ontwikkelomgeving voor het specificeren in ASF+SDF. Dit is een algebraisch formalisme dat gebruikt wordt voor het genereren van interactieve programmeeromgevingen. Een ASF+SDF specificatie bestaat grofweg uit twee delen: de syntax- en de semantiek van een programmeer- of specificatietaal. Het semantische gedeelte bevat "tools" zoals typecheckers, programmatransformatoren, compilers etc. Een van de unieke aspecten in de ASF+SDF Meta-omgeving is de integratie van de ontwikkelomgeving met de gegenereerde programmeeromgeving. Ofwel, tijdens het ontwikkelen van een ASF+SDF specificatie kan men deze direct gebruiken in de gegenereerde programmeeromgeving. Het user-interface van de ASF+SDF Meta-omgeving bestaat uit een verzameling syntax-gestuurde editors. Iedere editor is geparametriseerd met een (context vrije) taaldefinitie t.b.v. de syntax en een optionele verzameling van tools. De editor ondersteund zowel tekst- als structuur-georienteerde operaties op programmaas. Na het specificeren van "tools" moeten deze tools gekoppeld worden aan bijvoorbeeld een button van het user-interface van een of meerdere editors. Indien een gebruiker op zo'n button klikt moet het programma dat ge-edit wordt aan de tool gegeven worden en moet de uitvoer van dat tool aan de gebruiker worden gepresenteerd. Mijn onderzoek heeft zich geconcentreed op het bouwen van een generieke syntax-gestuurde editor en op het koppelen van tools aan zo'n editor. In mijn proefschrift komen de volgende onderwerpen aan de orde: - de integratie van tekst- en structuur editing; - het combineren van een bestaande tekst editor (emacs) en een bestaande structuur editor (gse, zelf ontwikkeld) tot een hybride editor; - koppeling van gespecificeerde tools aan het user-interface van een editor en specificatie van bijbehorende gebruikers dialogen middels SEAL. SEAL (Semantics-directed Environment Adaptation Language) is speciaal hiervoor ontwikkeld; - specificatie van een structuur editor in ASF+SDF en zijn user-interface in SEAL. Daar waar mogelijk zijn generatie technieken gebruikt om de benodigde software te verkrijgen, zoals bijvoorbeeld voor tool koppeling en run-time software t.b.v. gebruikers dialogen: de SEAL typechecker en compiler zijn geheel in ASF+SDF gespecificeerd. Een en ander heeft geresulteerd in een uniform user-interface voor zowel het ontwikkelen van ASF+SDF specificaties als het gebruiken van daaruit gegenereerde programmeeromgevingen.