A meta-environment for generating programming environments

Over the last decade, considerable progress has been made in solving the problems of automatic generation of programming/development environments, given a formal definition of some programming or specification language. In most cases, research has focused on the functionality and efficiency of the generated environments, and, of course, these aspects will ultimately determine the acceptance of environment generators. However, only marginal attention has been paid to the development process of formal language definitions itself. Assuming that the quality of automatically generated environments will be satisfactory within a few years, the development costs of formal language definitions will then become the next limiting factor determining ultimate success and acceptance of environment generators. In this paper we describe the design and implementation of a meta-environment (a development environment for formal language definitions) based on the formalism ASF + SDF. This meta-environment is currently being implemented as part of the Centaur system and is, at least partly, obtained by applying environment generation techniques to the language definition formalism itself. A central problem is providing fully interactive editing of modular language definitions such that modifications made to the language definition during editing can be translated immediately to modifications in the programming environment generated from the original language definition. Therefore, some of the issues addressed are the treatment of formalisms with user-definable syntax and incremental program generation techniques.

[1]  Paul Klint,et al.  Towards monolingual programming environments , 1985, TOPL.

[2]  Bernard Lang,et al.  Programming Environments Based on Structured Editors: The MENTOR Experience, , 1980 .

[3]  J. G. Rekers,et al.  Modular parser generation , 1989 .

[4]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[5]  J. W. C. Koorn,et al.  Connecting Semantic Tools to a Syntax-Directed User-Interface , 1992 .

[6]  Paul R. Hendriks,et al.  Implementation of modular algebraic specifications , 1991 .

[7]  van der,et al.  Algebraic specification of a compiler for a language with pointers , 1988 .

[8]  Frédéric Voisin,et al.  CIGALE: A Tool for Interactive Grammar Construction and Expression Parsing , 1986, Sci. Comput. Program..

[9]  Moshe Sidi,et al.  Generation of interactive programming environments: GIPE , 1986 .

[10]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[11]  Bernard Lang,et al.  Metal: A Formalism to Specify Formalisms , 1983, Sci. Comput. Program..

[12]  D. Clement GIPE : generation of interactive programming environments , 1990 .

[13]  P.R.H. Hendriks,et al.  Lists and associative functions in algebraic specifications : semantics and implementation , 1989 .

[14]  Paul Klint,et al.  Incremental generation of lexical scanners , 1992, TOPL.

[15]  J.W.C. Koorn,et al.  GSE, a generic syntax-directed editor , 1990 .

[16]  Arie van Deursen,et al.  Origin Tracking , 1993, J. Symb. Comput..

[17]  J. W. C. Koorn,et al.  GSE: a generic text and structure editor , 1992 .

[18]  P.R.H. Hendriks,et al.  ASF system user's guide , 1988 .

[19]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[20]  Jan A. Bergstra,et al.  Algebraic specification , 1989 .

[21]  Paul Klint,et al.  The syntax definition formalism SDF—reference manual— , 1989, SIGP.

[22]  van der,et al.  Deriving incremental implementations from algebraic specifications , 1990 .

[23]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[24]  N. W. P. van Diepen,et al.  Implementation of Modular Algebraic Specifications , 1988, ESOP.

[25]  Dimitris Christodoulakis,et al.  The GRASPIN software engineering environment , 1991, Journal of Systems and Software.

[26]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

[27]  Paul Klint,et al.  Incremental generation of parsers , 1989, PLDI '89.

[28]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[29]  J. Rekers,et al.  Lazy and incremental program generation , 1994, TOPL.

[30]  M. H. Logger,et al.  An integrated text and syntax-directed editor , 1988 .

[31]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

[32]  Michael L. Van de Vanter,et al.  The Pan language-based editing system , 1992, TSEM.

[33]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[34]  Paul Klint,et al.  Lazy scanner generation for modular regular grammars , 1989 .