Syntax-directed editing: towards integrated programming environments

Abstract : One of the major goals of software engineering is to enhance programming quality and productivity, in particular, for producing large software systems. Programming language design and methodology have contributed towards this goal by developing and supporting concepts such as modularization and data abstraction and encapsulation. The MESA (Mitchell 78) and ADA (DoD 80) programming languages are examples of the evolution of these concepts. With these concepts, programming languages can support the static aspects of program construction by letting the programmer, among other things, describe the modular interfaces of his system, localize the decisions of representation, etc. Programming languages lack support for the dynamic aspects of the development and maintenance of large software systems: system developers must deal with different versions and compositions of the different pieces of a system, as well as with the interaction of several programmers in the development of a system.