A programming system
Peter A. Buhr · Mspace (University of Manitoba) · 1985
Currently, a Programming System is divided into two major subsystems: one subsystem deals with device memories (ie. files on peripheral devices), and the other subsystem deals with main memory (ie. programming languages). This dichotomy has resulted in separate development routes in both these areas, which in turn has resulted in problems of maintaining type consistency between these two subsystems. To achieve consistency throughout the entire system, particularly between the interactive command language and program language modules, it is necessary to have files as objects in the program language. Currently, programming language constructs deal with the manipulation of storage that is directly accessible (ie. in main memory). However, files are not directly accessible and as a result constructs available to define files and subsequently to create and use them must all reflect this fact. Programming language constructs that provide these facilities are defined and their semantic action is discussed. A single programming language, containing file definition and accessing features, is used to support both interactive program invocation and program definition. As well, all programming language features traditionally found only in conventional programming are available interactively. Interactive programming requires both an existing data area to store instances of data items and a symbol table containing information about these instances. An interactive data area and symbol table are indivisible, and must be retained between user terminal sessions. To support this capability a new entity is introduced into the system called an environment. Maintaining system wide consistency also requires retention of the symbol tables for all predefined programs along with the symbol tables for interactive data items. The retention of symbol tables induces a new style of programming in which all declarative statements are made through a special editor. More importantly, the editor also allows modifications to be made to previously entered declarations. Consequently, the editor can detect changes that affect consistency and thereby cause automatic recompilation of affected programs. Secondary issues such as addressing, security, and scheduling are all discussed in this new Programming System framework.