ABSTRACT

Conventional, batch-oriented languages lack many features that are required to support interactive computing, such as graphics, rapid prototyping, multiprocessing capabilities, and effective representations for programs, such as visual environments and object-oriented programming. However, an even more fundamental problem with conventional languages is that their foundations are typically built on imperative programming. Imperative programming forces the programmer to completely manage the flow-of-control. While this is acceptable in batch applications where the flow-of-control is centralized, fairly linear, and predictable, it is unacceptable in highly interactive applications in which the flow-of-control is distributed, highly nonlinear, and unpredictable. As the functionality of interactive applications increases, the potential combinations of operations and dialogs increases nonlinearly, inevitably overwhelming the programmer's ability to successfully manage the flow-of-control.