Pan is a prototype and testbed for language-based editors and viewers. Its design addresses the needs of experienced users who manage complex objects such as large software systems. All of Pan's components are multi-lingual, incremental, description-driven, customizable, and extensible. Viewing is facilitated by semantics-based browsing and an object model which integrates text and structure. Pan is intended to share information with other tools, allowing integration into a larger language, program, and document development environment.
This document describes the internal design of Pan I the current implementation of Pan. It begins by reviewing goals that motivated the project and Pan's particular approach to those goals. The body of the document describes the implementation from five successive points of view: implementation layers, functional components, basic objects, services provided to the user, and the thread of control in the running system.
(September, 1986. Revised Summer, 1987.)