At Irvine, we are currently in the initial stages of designing a programming environment, called Arcturus. This paper is a report of work in progress giving our preliminary philosophy and expressing preliminary thoughts on an initial Arcturus design.
Arcturus is an advanced, highly-integrated programming environment intended for use in the late 1980s. We assume that programmers will each be equipped with large flat-screen displays driven by powerful desk-top computers linked into local networks by high band-width channels, and that shared central resources such as archival databases and multifont printing systems will be available.
Arcturus is aimed at "programming in the large", that is, programming by many people, on large programs, with maintenance lifetimes of many years. In such a user setting, problems of management, documentation, training, testing, version control, diagnosis, and debugging must be solved effectively by people who, for the most part, are not authors or designers of the original system.
Some preliminary design concepts that Arcturus supports are as follows:
(1) Arcturus supports a "rapid prototyping" language -- a very high level, strongly extensible language useful for rapid construction of working prototypes of systems (emphasizing cheap, rapid construction at the expense of running efficiency and polish).
(2) Arcturus supports refinement of these prototype programs, or protoprograms, for short, into programs written in program design languages (or PDLs) , which express designs. PDL programs are ultimately refined into concrete, detailed, optimized programs expressed in an implementation language.
(3) Arcturus supports a computer-based form of program documentation in which program forms at various levels of abstraction can have attribute/value pairs attached to any of their granules (granules being well-formed program units of any size such as constants, variables, operators, expressions, statements, blocks, and modules) and in which the attributes may be selectively viewed and queried to suit the needs of different audiences.
(4) The notion of attribute/value attachment to granules of program forms also supplies the principal mechanism for promoting a high degree of environment integration. By attaching to program granules such attributes as clocks, counters, units of programmer and system resources spent, version descriptions, access controls, descriptions of tests passed, task schedule data, computer sizing estimates, and so on, smooth integration between the activities of designers, managers, testers, maintainers, programmers, and documenters can be achieved, and environment tools can cooperate with each other conveniently.
(5) Arcturus supports an advanced programmer's workstation, an interactive programmer's notebook, and extensive software management support tools.
In the framework of the Arcturus effort, we have attempted to rethink afresh issues of epistemology related to the programming process that impact documentation, fault diagnosis, maintenance, training, and software upgrade, so that the design of Arcturus will reflect the relationships between the different kinds of expertise that are required in the programming process. We are also attempting to formulate theories of documentation, debugging, and maintenance to guide the development of computer-based support capabilities that assist in the performance of these activities.
In this context, this paper contains preliminary, tentative expositions of background philosophy and rationale that guide our present thinking about Arcturus.