Viewing a programming environment as a single tool

Programming environments support the creation, modification, execution and debugging of programs. The goal of integrating a programming environment is more than simply building tools that share a common data base and provide a consistent user interface. Ideally, the programming environment appears to the programmer as a single tool; there are no firewalls separating the various functions provided by the environment. This paper describes the techniques used to integrate Magpie, an interactive programming environment for Pascal. Display windows, called browsers, provide a consistent approach for interacting with the Pascal source code or the execution state of the program. Incremental compilation allows the programmer to specify debugging actions in Pascal, eliminating the need for a separate debugging language.