Abstract:
Source code plays a major role in most software engineering
environments. The interface of choice between source code and human
users is a tool that displays source code textually and possibly
permits its modification. Specializing this tool for the source code's
language promises enhanced services for programmers as well as better
integration with other tools. However, these two goals, user services
and tool integration, present conflicting design constraints that have
previously prevented specialization. A new architecture, based on a
lexical representation of source code, represents a compromise that
satisfies constraints on both sides. A prototype implementation
demonstrates that the technology can be implemented using current
graphical toolkits, can be made highly configurable using current
language analysis tools, and that it can be encapsulated in a manner
consistent with reuse in many software engineering contexts.
Second International Symposium on Constructing Software Engineering Tools (CoSET'2000) ,
Limerick, Ireland, June 5, 2000
10 pages (PDF)
Personal note: I unfortunately have no video recording showing this editor (the "Code Processor") in operation. I do however have a 1994 demonstration video from an earlier Sun Labs project ("Clarity") where I first prototyped the idea of a program editor operating purely on a lexical token stream, i.e. with no traditional text buffer at all. The Code Processor described in this (CoSET'2000) paper was a complete reimplementation, refinement, and extension of that particular idea in the Clarity Coded Processor, but without the persistent, semantically attributed ASTs that were central to Clarity.
Watch the Clarity Code Processor Video