Scribe (markup language)


Scribe is a markup language and word processing system that pioneered the use of descriptive markup.[1][2] Scribe was revolutionary when it was proposed, because it involved for the first time a clean separation of presentation and content.[3][4][5]

Scribe (markup language)
Developed byBrian Reid, Scribe Systems
Type of formatMarkup language
Extended toTexinfo
Open format?Yes



Scribe was designed and developed by Brian Reid of Carnegie Mellon University. It formed the subject of his 1980 doctoral dissertation, for which he received the Association for Computing Machinery's Grace Murray Hopper Award in 1982.[1]

Reid presented a paper describing Scribe in the same conference session in 1981 in which Charles Goldfarb presented GML (developed in 1969),[6] the immediate predecessor of SGML.

Scribe sold to UnilogicEdit

In 1979, at the end of his graduate-student career, Reid sold Scribe to a Pittsburgh-area software company called Unilogic (later renamed Scribe Systems[7]), founded by Michael Shamos, another Carnegie Mellon computer scientist, to market the program. Reid said he simply was looking for a way to unload the program on developers that would keep it from going into the public domain.

Michael Shamos was embroiled in a dispute with Carnegie Mellon administrators over the intellectual-property rights to Scribe. The dispute with the administration was settled out of court, and the university conceded it had no claim to Scribe.[8]


Reid agreed to insert a set of time-dependent functions (called "time bombs") that would deactivate freely copied versions of the program after a 90-day expiration date. To avoid deactivation, users paid the software company, which then issued a code that defused the internal time-bomb feature.

Richard Stallman saw this as a betrayal of the programmer ethos. Instead of honoring the notion of "share-and-share alike", Reid had inserted a way for companies to compel programmers to pay for information access.[9]

Stallman's Texinfo is "loosely based on Brian Reid's Scribe and other formatting languages of the time"[citation needed].[10]

Using Scribe word processorEdit

Using Scribe involved a two phase process:

  • Typing a manuscript file using any text editor, conforming to the Scribe markup.
  • Processing this file through the Scribe compiler to generate an associated document file, which can be printed.

The Scribe markup language defined the words, lines, pages, spacing, headings, footings, footnotes, numbering, tables of contents, etc. in a way similar to HTML. The Scribe compiler used a database of Styles (containing document format definitions), which defined the rules for formatting a document in a particular style.

Because of the separation between the content (structure) of the document, and its style (format), writers did not need to concern themselves with the details of formatting. In this, there are similarities to the LaTeX document preparation system by Leslie Lamport.

The markup languageEdit

The idea of using markup language, in which meta-information about the document and its formatting were contained within the document itself, first saw widespread use in a program called RUNOFF; Scribe contained the first robust implementation of declarative markup language.[11]

In Scribe, markup was introduced with an @ sign, followed either by a Begin-End block or by a direct token invocation:

@Heading(The Beginning)
    Let's start at the very beginning, a very good place to start

It was also possible to pass parameters:

@MakeSection(tag=beginning, title="The Beginning")

Typically, large documents were composed of Chapters, with each chapter in a separate file. These files were then referenced by a master document file, thereby concatenating numerous components into a single large source document. The master file typically also defined styles (such as fonts and margins) and declared macros like MakeSection shown above; macros had limited programmatic features. From that single concatenated source, Scribe computed chapter numbers, page numbers, and cross-references.

These processes replicate features in later markup languages like HTML. Placing styles in a separate file gave some advantages like Cascading Style Sheets, and programmed macros presaged the document manipulation aspects of JavaScript.

Related softwareEdit

The FinalWord word processor from Mark of the Unicorn, which became Borland's Sprint, featured a markup language which resembled a simplified version of Scribe's. Before being packaged as FinalWord, earlier versions of the editor and formatter had been sold separately as MINCE ("MINCE Is Not Complete Emacs") and Scribble respectively.

See alsoEdit


  1. ^ a b "1982 – Brian K. Reid". Grace Murray Hopper Award. Retrieved 2009-02-24. For his contributions in the area of computerized text-production and typesetting systems, specifically Scribe which represents a major advance in this area. It embodies several innovations based on computer science research in programming language design, knowledge-based systems, computer document processing, and typography.
  2. ^ "Scribe(ID:2481/scr010) - Text-formatting language". Online Historical Encyclopaedia of Programming Languages ( Retrieved 2009-02-24. Brian Reid. Ground-breaking text-formatting language. Reason for Reid getting a Hopper Medal in 1982.
  3. ^ "Markup Technologies '98 Conference. Agenda and Schedule". November 1998. Retrieved 2009-02-24. Brian Reid's work with markup systems began in the 1970s. He independently invented and implemented descriptive markup and developed its theory. His Scribe system may have been the cleanest separation of structure and format ever built. His dissertation on it was already complete in 1981, the year he presented in Lausanne in the same session where Charles Goldfarb publicly presented GML; SGML was proposed about a year later
  4. ^ "XML Linking". November 1998. Retrieved 2009-02-24. "Generalized", "generic", or "descriptive" markup has been discovered several times, apparently independently. Scribe [Reid 1981] is an early formatter based on structure rather than formatting commands.
  5. ^ Brian K. Reid, "A high-level approach to computer document formatting", Proceedings of the POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p. 24-31 doi:10.1145/567446.567449
  6. ^ see GML Wiki article
  7. ^ PostScript Printer Driver Optimization Case Study, Adobe Systems, Technical Note #5042, 31 March 1992. Page 5.
  8. ^ The Chronicle: August 10, 2001: 2 Scholars Face Off in Copyright Clash
  9. ^ Williams, Sam (March 2002). "Free as in Freedom - Richard Stallman's Crusade for Free Software". O'Reilly. Retrieved 2008-09-26. For Reid, the deal was a win-win. Scribe didn't fall into the public domain, and Unilogic recouped on its investment. For Stallman, it was a betrayal of the programmer ethos, pure and simple. Instead of honoring the notion of share-and-share alike, Reid had inserted a way for companies to compel programmers to pay for information access.
  10. ^ TexInfo
  11. ^ Crockford, Douglas (2007-06-28). "Scribe". Retrieved 2010-04-12.

External linksEdit

  • Reid's 1980 doctoral dissertation, "Scribe: A Document Specification Language and its Compiler". (Note: As of April 2014, missing the last page.)
  • Abstract of the dissertation.
  • Brian Reid's keynote at the Markup Technologies '98 conference, in PowerPoint
  • Reason why Brian Reid obtained a Hopper Medal for Scribe, at the Online Historical Encyclopaedia of Programming Languages
  • Scribe, Introductory User's Manual, Brian Reid, 1978