Tim A. Wagner presenta en este informe técnico de 1998 una colección integrada de algoritmos y estructuras de datos concebida como base de un entorno práctico de desarrollo incremental de software. El trabajo, realizado en la Universidad de California en Berkeley, introduce una representación con autoversionado que modela de forma uniforme documentos en lenguaje natural y lenguajes de programación, y ofrece informes de cambio de grano fino a todas las herramientas del entorno. El autor describe algoritmos para la construcción inicial y el mantenimiento posterior de documentos estructurados y persistentes que admiten edición sin restricciones, con propiedades óptimas de espacio y tiempo y mejor escalabilidad que propuestas anteriores. Una parte significativa del informe aborda el análisis sintáctico no determinista, que permite codificar la ambigüedad sintáctica de forma compacta en lenguajes como C, C++, COBOL y FORTRAN, cuya gramática no admite un análisis determinista. Wagner define además un método no operativo de reutilización óptima de nodos en el análisis incremental y algoritmos para conservar tokens y nodos durante el lexado y el análisis. El informe también plantea un mecanismo de recuperación de errores sensible al historial, que reporta los problemas en función de los cambios introducidos por el usuario de manera independiente del lenguaje. Patrocinado en parte por la DARPA, el trabajo combina material previamente publicado en IEEE, Springer-Verlag y ACM con capítulos inéditos, e incluye agradecimientos a miembros del grupo Ensemble y al comité de tesis.
