An environment for understanding programs

The time-consuming task of understanding the program to be maintained is particularly difficult when the code to be understood was not constructed using modern software-engineering techniques or modern programming languages. In such cases, it is difficult for the programmer to navigate through the name, control-flow, and data-flow spaces of the program to try to achieve a sense of function. A system is described that attempts to alleviate many of these problems by capturing, in a database, the name, control-flow, and data-flow relationships defined by an assembler program and providing a viewing environment, context-sensitive program. In the systems' environment, context-sensitive functions are provided to allow navigation of the name, control-flow, and data-flow spaces of the program, so the programmer is free to concentrate on the understanding task.<<ETX>>