Evolution of an SGML application generator

The Standard Generalized Markup Language (SGML) is a notation for describing classes of structured documents and for coding documents belonging to described classes. An advantage of SGML and other grammar-based document representations is the ability to perform multiple applications on a single document source file. This paper describes the evolution of a software development tool for implementing such applications. It explains the original design as well as enhancements made during the system's first eighteen months. Although not statistically significant, data on the use of the enhanced features are presented. The experience described is relevant to other software engineering tools for text processing. The Standard Generalized Markup Language (SGML) is described in International Standard 8879 [1], published in late 1986. SGML evolved from macro-based word-processing and text-formatting tools. It encourages a writer to use descriptive markup, identifying structures within a document, rather than procedural markup, specifying processing. For example, "this is a section heading" is preferred to "center this line in boldface." The philosophy underlying descriptive markup has been repeatedly described [2, 3]. Its use allows a single source document to be processed by various applications. The text can, for example, be formatted, loaded into an Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the A C M copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and / or specific permission. © 1988 ACM 0-89791-291-8/88/0012/0051 $1.50 online database, or analyzed for various linguistic properties. This paper discusses the evolution of a set of software development tools for supporting SGML applications. This material is introduced by an overview of SGML and a description of the original design of the software support system.