SCRIPT (markup)


SCRIPT, any of a series of text markup languages starting with Script under Control Program-67/Cambridge Monitor System and Script/370 under Virtual Machine Facility/370 and the Time Sharing Option of OS/VS2; the current version, SCRIPT/VS, is part of IBM's Document Composition Facility for IBM z/VM and z/OS systems. SCRIPT was developed for CP-67/CMS by Stuart Madnick at MIT, succeeding CTSS RUNOFF.
SCRIPT is a procedural markup language. Inline commands called control words, indicated by a period in the first column of a logical line, describe the desired appearance of the formatted text. SCRIPT originally provided a 2PASS option to allow text to refer to variables defined later in the text, but subsequent versions allowed more than two passes.

History

In 1968 "IBM contracted Stuart Madnick of MIT to write a simple document preparation..." to run on CP/67. He modeled it on MIT's CTSS RUNOFF.
In 1974, William Dwyer at Yale University ported the CP-67 version of Script to the Time Sharing Option of OS/360 under the name NSCRIPT. The University of Waterloo rewrote and extended NSCRIPT as Waterloo SCRIPT, also in 1974, making it available for free to CMS and TSO users for several releases before eventually charging for new releases.
By 1978, IBM's Script/370, running on VM/CMS, had evolved into Document Composition Facility, supporting SCRIPT/VS on CMS, DOS/VS, OS/VS1 and OS/VS2, and supported the IBM 3800. In addition, there was a PC/MS-DOS version called SCRIPT/PC.

Native SCRIPT control words

Native Script control begin with a period and have a space prior to operands. They normally begin in column 1, but you may code multiple control words, separated by semicolons, on a single line.
The description and table below refer to selected control words in DCF; older versions are similar.
SCRIPT allows space units in control words to be specified in a number of units including inches, centimeters, millimeters, picas, ciceros, m-spaces, or device units. Vertical space units are assumed to be lines unless otherwise specified.
control wordfunctionexample
.spInserts blank vertical spaceInserts one blank line
.ceCenters following linesCenters the following two lines on the current page or column
.ezControls [|EasyScript]Starts paragraph with text foo bar; equivalent to &P.foo bar after.ez on
.imImbeds a file at the current locationInserts the file 'BLRPLT SCRIPT'
.juTurn on/off justify modeRequests that subsequent lines be justified
until.ju off is encountered
.rhSpecify running head informationIdentify following lines as running head
until.rh off is encountered
.dfDefine a named fontSpecifies attributes for font named 'examp'.
.bfSpecify font for following text'title' is the name of a font identified by a.df control word.
.seAssigns a value to a variable symbolAssigns a value to the variable &month that will replace every subsequent occurrence of &month in the input text until &month is redefined.

SCRIPT macros

Script includes a facility for user-defined macros and for automatically reading a profile containing macro definitions and other commands. Several packages for semantic tagging, including [|GML] and EasyScript, are built on top of this facility.

Generalized Markup Language

IBM's Generalized Markup Language is a descriptive markup layer describing the logical structure of a document. Both SCRIPT/VS and the GML Starter Set are part of IBM's Document Composition Facility, used in the System/370 platform and successors.The tag sets of the BookMaster and BookManager BUILD/MVS products are built on a foundation of the GML Starter Set syntax and implementation.
The Standard Generalized Markup Language is a descendant of GML. While DCF does not directly handle SGML, there is an SGML translator available as a separate product.

EasyScript

EasyScript is a set of macro definitions and profiles included with Script/370 Version 3 that implements a primitive version of GML. Tags are variables whose values have been set to control words, allowing multiple tags in a single line.

.ez on
&P.This is a paragraph.
&N1.First item
&N2.First subitem
&N2.Second subitem
&N1.Second item

is roughly equivalent to
This is a paragraph
  1. First item
  2. #First subitem
  3. #Second subitem
  4. Second item

    GML Starter Set (GMLSS)

The GML Starter Set is a set of macro definitions and profiles that implements a set of tags that has more of a semantic orientation than the raw Script/VS control words. Tags begin with a colon and end with a period, and may contain attributes between the name and the closing period; a line may contain multiple tags.

BookMaster

Bookmaster is an IBM product, "designed for high-volume in-house publishing applications", that extends the GML Starter Set of DCF. It consists of "a rich set of GML vocabulary for creating complex document layouts." Bookmaster runs under the z/VM and z/OS operating systems.

Bookmanager

Bookmanager is a family of products for producing and reading online books. Bookmanager Build products for generating text are layered on top of SCRIPT and BookMaster and can run on z/VM, z/OS, Windows or OS/2. Bookmanager Read products for viewing text run on a variety of systems. Bookmanager Book Server is a multi-platform system to "serve your electronic books to HTML browsers."