The author presents an interactive document editor based on an expressive abstract document model for paper and electronic documents. The model introduces the notions of abstract and concrete objects, hierarchical composition of ordered and unordered objects, sharing of components, and reference links. It has been used to specify a wide variety of document objects, and is the basis for a document processing system that allows its users to edit the logical structure of a document using specific structure editing commands. This system introduces two new ideas. The first involves computational objects; each object can be programmed to generate its own unique view of the document, and each of these views can be displayed in a separate window on the screen. The second involves multiple windows to display the document structure. The windows are arranged hierarchically as sets and sequences, depending on the composite structure of the document. This system is used for both editing and viewing documents.