Generating Uniform User-Interfaces for Interactive Programming Environments Jan Willem Cornelis Koorn Abstract: The ASF+SDF Meta-environment is an interactive development environment for writing specifications in ASF+SDF. This is an algebraic formalism that is, among others, used to generate interactive programming environments. An ASF+SDF specification consists of two parts: the syntax, and the semantics of a programming, or specification language. The semantic part contains ``tools'' such as type checkers, program transformers, compilers, etc. One of the unique aspects of the ASF+SDF Meta-environment is the integration of the development environment and the generated environment into one interactive system. In other words, during the development of an ASF+SDF specification one can use this immediately in the generated programming environment. The user-interface of the ASF+SDF Meta-environment consists of a set of syntax-directed editors. Each editor is parameterized with a context-free language definition for the syntax, and an optional set of tools. The editor supports both text- and structure-oriented operations on programs. After the specification of ``tools'' these tools have to be connected to, for example, a button in the user-interface of one or more editors. If a user clicks such a button the program that is being edited is passed on to the tool, and the output of the tool is to be presented to the user. The research in this thesis has concentrated on building a generic syntax-directed editor and connecting the tools to this editor. The following subjects are addressed: \begin{itemize} \item Integration of text and structure editing, \item Combining an existing text editor (emacs) with an existing structure editor (gse) into a hybrid editor, \item Connecting specific tools to a user-interface of an editor, and specification of user dialogues with SEAL (Semantics-directed Environment Adaptation Language) which was developed for this purpose, and \item Specification of a structure editor in ASF+SDF and its user-interface in SEAL. \end{itemize} Where possible, generation techniques were used to obtain the necessary software, for example, the SEAL type checker and compiler were fully specified in ASF+SDF, compiled into a C program and linked to the Meta-environment. This research has resulted in uniform user-interfaces for both the development of ASF+SDF specifications as well as for the programming environment generated from it.