Conceptual Program Editors: Design and Formal Specification

Ph.D. Dissertation by Paolo Bucci

Abstract

When a programmer uses a program editor, his/her view of what programs are and how they are built is affected by the editor itself. This is a special case of a more general phenomenon; namely, that all artifacts have an impact on the way users think of them and of the activities they perform with them. Research in human-machine interaction has explored the ramifications of this insight with respect to how it affects the design of tools and their user interface.

In this dissertation we investigate the implications of this work for the design of program editors. We note that existing program editors convey a low-level, often inconsistent and incomplete conceptual model of programs and program construciton. This hides the high-level conceptual view of programs, imnposes excessive responsibilities on the programmer, and tends to make the programming task harder and more error prone.

We propose a new class of program editors that we call "conceptual editors." These editors are based on a specific, precise, high-level conceptual model of programs and program construction, and the editor and its user interface can be designed and built to convey the model in a consistent fashion. A conceptual editor, by design, supports, promotes, and even enforces an "appropriate" conceptual view of software through this model.

To show the feasibility of this approach to program editors, we formally specify an editor for a small, but significant (in terms of key concepts) subset of a programming language. By example, this demonstrates a precise description of a conceptual model and of a corresponding editor's capabilities. We also discuss how this design could be extended and generalized to an editor for a full-fledged programming language.

Download the postscript version of this dissertation.
Paolo Bucci <bucci@cis.ohio-state.edu>

Last modified: Tue Dec 30 13:32:25 EST 1997