Abstract:
Powerful editing systems for developing complex software documents are
difficult to engineer. Besides requiring efficient incremental
algorithms and complex data structures, such editors must integrate
smoothly with the other tools in the environment, maintain a sharable
database of information concerning the documents being edited,
accommodate flexible editing styles, provide a consistent, coherent,
and empowering user interface, and support individual variations and
project-wide configurations. Pan is a language-based editing and
browsing system that exhibits these characteristics. This paper
surveys the design and engineering of Pan, paying particular attention
to a number of issues that pervade the system: incremental checking
and analysis, information retention in the presence of change,
tolerance for errors and anomalies, and extension facilities.
ACM Transactions on Software Engineering and Methodology 1,1 (January 1992), 95-127. (DOI) (PDF).