Content area
Program editors are the primary focus of structure-oriented editing research. The basic benefits of structure-oriented editing are, however, transferable to many other applications. This thesis investigates the potential for providing general interactive computing through structure-oriented editing.
In most circumstances, interactive programs are preferable to batch programs. Perhaps the most frequently used interactive program is the text editor. The reverence of computer users for interactive text editors, while easily understood, leads to an ironic consequence: Any program that is designed to take input constructed by a text editor is inherently non-interactive, since the development of the data is performed in a step entirely separated from the execution of the program.
Structure-oriented editors are an alternative to text editors, based on manipulation of the underlying conceptual structures of a language, that naturally support close interaction between user and program. I demonstrate the generality of structure-oriented by (i) presenting an informal method for developing arbitrary computing tasks as highly interactive structure-oriented editors, (ii) showing how this method applies to a set of tasks including programing environments, document processing, and averaging, and (iii) proposing some guidelines for constructing editors.
Given the power of structure-oriented editors, development of such editors is desirable. Two problems--restricted sharing and weak typing--arise as structure-oriented editors are integrated into traditional computing environments. AGAVE is a non-traditional environment that focuses on the development and execution of structure-oriented editors. In AGAVE, implementors no longer write traditional programs but instead exclusively build structure-oriented editors. Similarly, AGAVE users execute structure-oriented editors instead of standard programs.
Implementation of AGAVE on top of a traditional operating system is relatively inefficient as AGAVE provides an entirely different model of the world than existing operating systems. AOS, the AGAVE operating system, defines a two-level capability-based mechanism that more closely models the desired user view. The first level of addressing selects a tree. The second level selects a node within a given tree. The division of the name into two pieces permits efficient manipulation of small objects.