SCRIPT (markup)
SCRIPT,[1] any of a series of text markup languages starting with Script[2][3] under Control Program-67/Cambridge Monitor System (CP-67/CMS) and Script/370[4] under Virtual Machine Facility/370 (VM/370) and the Time Sharing Option (TSO) of OS/VS2; the current version, SCRIPT/VS,[5][6][7] is part of IBM's Document Composition Facility (DCF)[8] for IBM z/VM and z/OS systems. SCRIPT was developed for CP-67/CMS by Stuart Madnick[1][9] 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
[edit | edit source]In 1968 "IBM contracted Stuart Madnick of MIT to write a simple document preparation ..."[10][1] to run on CP/67.[11] He modeled it on MIT's CTSS RUNOFF.[12][13] In 1974, William Dwyer at Yale University ported the CP-67 version of Script to the Time Sharing Option (TSO) of OS/360 under the name NSCRIPT.[14] The University of Waterloo rewrote and extended NSCRIPT as Waterloo SCRIPT,[15] 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 (DCF),[16] supporting SCRIPT/VS on CMS, DOS/VS, OS/VS1 and OS/VS2, and supported the IBM 3800.[10] In addition, there was a PC/MS-DOS version called SCRIPT/PC.[17]
Native SCRIPT control words
[edit | edit source]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 (pels at the current device resolution). Vertical space units are assumed to be lines unless otherwise specified.
| control word | function | example | |
|---|---|---|---|
.sp |
Inserts blank vertical space | .sp 1 |
Inserts one blank line |
.ce |
Centers following lines | .ce 2 |
Centers the following two lines on the current page or column |
.ez |
Controls EasyScript | .ez P foo bar |
Starts paragraph with text foo bar; equivalent to &P.foo bar after .ez on |
.im |
Imbeds a file at the current location | .im BLRPLT |
Inserts the file 'BLRPLT SCRIPT' |
.ju |
Turn on/off justify mode | .ju on |
Requests that subsequent lines be justified until .ju off is encountered |
.rh |
Specify running head information | .rh |
Identify following lines as running head until .rh off is encountered |
.df |
Define a named font | .df examp type('Century Schoolbook' 10 light) |
Specifies attributes for font named 'examp'. |
.bf |
Specify font for following text | .bf title |
'title' is the name of a font identified by a .df control word. |
.se |
Assigns a value to a variable symbol | .se month = January |
Assigns a value to the symbol &month that will replace every subsequent occurrence of &month in the input text until &month is redefined. |
SCRIPT macros
[edit | edit source]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
[edit | edit source]IBM's Generalized Markup Language (GML) 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 (DCF), used in the System/370 platform and successors. The tag sets of the BookMaster[18][19] and BookManager BUILD/MVS[20] products are built on a foundation of the GML Starter Set syntax and implementation.
The Standard Generalized Markup Language (SGML) is a descendant of GML. While DCF does not directly handle SGML, there is an SGML translator available as a separate product.
EasyScript
[edit | edit source]EasyScript is a set of macro definitions and profiles included with Script/370[21] Version 3[22][23][24] 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
- First item
- First subitem
- Second subitem
- Second item
GML Starter Set (GMLSS)
[edit | edit source]The GML Starter Set (GMLSS)[25][26] is a set of macro definitions and profiles that implements[27] 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
[edit | edit source]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.[18]
Although IBM no longer supports BookMaster, there is software[28] to convert old BookMaster documents to HTML.
BookManager
[edit | edit source]BookManager is a family of products for producing and reading online books. BookManager BUILD/MVS and BookManager BUILD/VM are layered on top of SCRIPT and BookMaster and can run on z/VM and z/OS.[29] Other BookManager BUILD products for generating text run on Linux, Windows or OS/2 and convert files produced by various word processors to BookManager format. BookManager Read products for viewing text run on a variety of systems. BookManager BookServer is a multi-platform system to "serve your electronic books to HTML browsers."[30]
BookManager electronic documents typically have filenames ending with the extension .BOO. IBM offers several no charge tools to work with and read BookManager documents including a reader/viewer called IBM Softcopy Reader.[31] An independent developer, Kev Bowling, created and released software that uses IBM's BookManager code libraries to convert BookManager documents to PDF.[32]
See also
[edit | edit source]References
[edit | edit source]- ^ a b c Stuart E. Madnick and Allen G. Moulton (1968) Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). IEEE Transactions on Engineering Writing and Speech, Vol. EWS-11, No. 2, pp. 92-100.
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ For compatibility, DCF also includes EasyScript.
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).SH35-0070-07
- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).SH35-0069-07
- "CTSS PROGRAMMER'S GUIDE Section AH.9.01, 12/66"