{{Short description|Markup language for IBM computers}} '''SCRIPT''',<ref name="smadnick">Stuart E. Madnick and Allen G. Moulton (1968) {{cite web|url=http://web.mit.edu/smadnick/www/papers/J002.pdf | title=SCRIPT, An Online Manuscript Processing System | accessdate=2012-09-12}} IEEE Transactions on Engineering Writing and Speech, Vol. EWS-11, No. 2, pp. 92-100.</ref> any of a series of text markup languages starting with Script<ref>{{cite manual | title = CMS SCRIPT User's Manual | publisher = IBM | id = GH20-0860 }}</ref><ref>{{cite manual | title = Control Program-67/Cambridge Monitor System (CP-67/CMS) Version 3 Program Number 3600-05.2.005 User's Guide | chapter = SCRIPT | version = First Edition | publisher = IBM | date = October 1970 | url = http://bitsavers.org/pdf/ibm/360/cp67/GH20-0859-0_CP-67_Version_3_Users_Guide_Oct1970.pdf | id = GH20-0859-0 | pages = 143[127]&ndash;177[163] | mode = cs2 }} </ref> under Control Program-67/Cambridge Monitor System (CP-67/CMS) and Script/370<ref>{{cite manual | title = SCRIPT/370 Text Processing Facility Under Virtual Machine Facility/370 (VM/370) Program Description/Operations Manual Program Number 5796-PAF | version = First Edition | publisher = IBM | date = November 1972 | url = http://bitsavers.org/pdf/ibm/370/CMS/SH20-1114-0_SCRIPT_370_Text_Processing_Facility_Nov72.pdf | id = SH20-1114-0 | mode = cs2 }} </ref> under Virtual Machine Facility/370 (VM/370) and the Time Sharing Option (TSO) of OS/VS2; the current version, '''SCRIPT/VS''',<ref>{{cite manual |title = DCF V1R4.0: SCRIPT/VS User's Guide |version = Third Edition |publisher = IBM |date = May 1999 |url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsmu2m00/CCONTENTS |id = S544-3191-02 }}{{Dead link|date=October 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite manual |title = DCF: SCRIPT/VS Language Reference |version = Eighth Edition |publisher = IBM |date = September 1998 |url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsml7m00/EDITION?DT=19990324064833 |id = SH35-0070-07 }}{{Dead link|date=October 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite manual |title = DCF V1R4.0: SCRIPT/VS Text Programmer's Guide |version = Eighth Edition |publisher = IBM |date = August 1999 |url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsmp7m00/CCONTENTS |id = SH35-0069-07 |mode = cs2 }}{{Dead link|date=October 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> is part of IBM's '''Document Composition Facility''' ('''DCF''')<ref>{{cite manual |title = Document Composition Facility and Document Library Facility General Information Program Numbers 5748-XX9 5748-XXE |version = Eleventh Edition |publisher = IBM |date = January 1991 |url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/DSM02M00/CCONTENTS?SHELF=dsm0pa01&DN=GH20-9158-10&DT=19910521163021 |id = GH20-9158-10 }}{{Dead link|date=October 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> for IBM z/VM and z/OS systems. SCRIPT was developed for CP-67/CMS by Stuart Madnick<ref name="smadnick" /><ref name="TheRootsOfSgml">{{cite web|url=http://www.sgmlsource.com/history/roots.htm|year=1996|title=The Roots of SGML - A Personal Recollection|author=Charles F. Goldfarb|accessdate=2012-02-26|archive-date=2012-12-20|archive-url=https://web.archive.org/web/20121220071917/http://www.sgmlsource.com/history/roots.htm|url-status=usurped}}</ref> 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 ..."<ref name=":0">{{Cite journal|last=Hannotte|first=Dean|date=March 19, 1985|title=Put Your Text In Top Form|url=https://books.google.com/books?id=mI2TxlvjaksC&dq=PC+Magazine+March+1985+Script%2FPC&pg=PA211|journal=PC Magazine|publisher=Ziff-Davis|volume=4|issue=6|pages=209–211, 213, 221|via=Google Books}}</ref><ref name="smadnick"/> to run on CP/67.<ref>{{cite journal |title=SCRIPT, An On-Line Manuscript Processing System |year=1968|doi=10.1109/TEWS.1968.4322339|s2cid=51633921|last1=Madnick|first1=Stuart E.|last2=Moulton|first2=Allen|journal=IEEE Transactions on Engineering Writing and Speech|volume=11|issue=2|pages=92–100}}</ref> He modeled it on MIT's CTSS RUNOFF.<ref>{{cite web |title=What does sCrIPT mean? |quote=SCRIPT was developed for CP-67/CMS by Stuart Madnick at MIT, succeeding CTSS RUNOFF. |url=https://www.definitions.net/definition/sCrIPT}}</ref><ref>{{cite web |title=History of UNIX Manpages |url=https://manpages.bsd.lv/history.html |quote=1967: SCRIPT (Stuart Madnick). In 1967, Madnick ported the RUNOFF code to the IBM CP67/CMS at IBM as SCRIPT. The documentation of SCRIPT explicitly ...}}</ref> 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.<ref>{{cite book | title = User's Guide and Catalog of Programs | publisher = SHARE PROGRAM LIBRARY AGENCY | year = 1977 | id = 360D-03.5.008 | page = 24 | url = http://bitsavers.org/pdf/ibm/share/SHARE_PgmCatalog_Jan77.pdf }}</ref> The University of Waterloo rewrote and extended NSCRIPT as Waterloo SCRIPT,<ref>{{cite book | title = Introduction to SCRIPT | date = November 29, 1978 | publisher = University of Waterloo Computing Centre | mode = cs2 }} </ref> 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),<ref>{{cite book | title = Document Composition Facility: User's Guide Program Number S748-XX9 | id = SH20-9161-0 | date = July 1978 | edition = first | url = http://bitsavers.org/pdf/ibm/370/DCF/SH20-9161-0_Document_Composition_Facility_Users_Guide_Jul78.pdf | mode = cs2 }} </ref> supporting SCRIPT/VS on CMS, DOS/VS, OS/VS1 and OS/VS2, and supported the IBM 3800.<ref name=":0" /> In addition, there was a PC/MS-DOS version called SCRIPT/PC.<ref>{{cite book | title = SCRIPT/PC -Book 1 How to Use | id = 1502414 | series = Personal Computer Productivity Series | edition = First | date = January 1984 | url = http://bitsavers.org/pdf/ibm/pc/apps/Script_PC/1502414_SCRIPT_PC_Book_1_How_to_Use_Jan84.pdf | mode = cs2 }} </ref>

==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'' (pels at the current device resolution). Vertical space units are assumed to be ''lines'' unless otherwise specified. {| class="wikitable" |- ! control word !! function !! example !! |- | <code>.sp</code> || Inserts blank vertical space || {{code|2=groff|.sp 1}} || Inserts one blank line |- | <code>.ce</code> || Centers following lines || {{code|2=groff|.ce 2}} || Centers the following two lines on the current page or column |- | <code>.ez</code> || Controls EasyScript || {{code|2=groff|.ez P foo bar}} || Starts paragraph with text '''foo bar'''; equivalent to '''&amp;P.foo bar''' after .ez on |- | <code>.im</code> || Imbeds a file at the current location || {{code|2=groff|.im BLRPLT}} || Inserts the file 'BLRPLT SCRIPT' |- | <code>.ju</code> || Turn on/off justify mode || {{code|2=groff|.ju on}} || Requests that subsequent lines be justified<br>until .ju off is encountered |- | <code>.rh</code> || Specify ''running head'' information || {{code|2=groff|.rh}} || Identify following lines as running head<br>until .rh off is encountered |- | <code>.df</code> || Define a named font || {{code|2=groff|.df examp type('Century Schoolbook' 10 light)}} || Specifies attributes for font named 'examp'. |- | <code>.bf</code> || Specify font for following text || {{code|2=groff|.bf title}} || 'title' is the name of a font identified by a .df control word. |- | <code>.se</code> || Assigns a value to a variable symbol || {{code|2=groff|1=.se month = January}} || Assigns a value to the symbol &month that will replace every subsequent occurrence of &month in the input text until &amp;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== {{Main|Generalized Markup Language}} 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<ref name=5688-015>{{cite web | title = 5688-015 IBM Host Publishing Systems BookMaster R4 | id = 5688-015 | url = http://www.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS5688-015 | access-date = August 4, 2021 | work = IBM United States Sales Manual | date = 5 August 2008 | publisher = IBM }} </ref><ref>{{cite web | title = BookMaster V1R4.0 Bookshelf product on Printing and Publishing CD | url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/Shelves/edf01a02 | archive-url = https://archive.today/20130628042800/http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/Shelves/edf01a02 | archive-date = June 28, 2013 | url-status = dead | publisher = IBM }} </ref> and BookManager BUILD/MVS<ref>{{cite web | title = BookManager READ/MVS and BUILD/MVS V1R3.0 Bookshelf | url = http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/Shelves/eoxeoy07 | archive-url = https://archive.today/20130628042624/http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/Shelves/eoxeoy07 | archive-date = June 28, 2013 | url-status = dead | publisher = IBM }} </ref> 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=== '''EasyScript''' is a set of macro definitions and profiles included with Script/370<ref>{{cite manual | author = IBM | title = SCRIPT/370 Text Processing Facility Under Virtual Machine Facility/370 (VM/370) Program Description/Operations Manual Program Number 5796-PAF | version = First Edition | publisher = IBM | date = November 1972 | url = http://bitsavers.org/pdf/ibm/370/CMS/SH20-1114-0_SCRIPT_370_Text_Processing_Facility_Nov72.pdf | id = SH20-1114-0 }}</ref> Version 3<ref>{{cite manual | author = IBM | title = SCRIPT/370 Version 3 User's Guide Program Number: 5796úPHL | version = First Edition | publisher = IBM | date = September 1976 | url = http://bitsavers.org/pdf/ibm/370/CMS/SH20-1857-0_SCRIPT_370_Version_3_Users_Guide_Sep76.pdf | id = SH20-1857-0 | mode = cs2 }} </ref><ref>{{cite manual | title = SCRIPT/370 Text Processing Facility Under Virtual Machine Facility/370 (VM/370) Systems Guide Program Number 5796-PAF | publisher = IBM | url = http://bitsavers.org/pdf/ibm/370/CMS/LY20-0762-0_SCRIPT_370_Text_Processing_Facility_Systems_Guide_Nov72.pdf | id = LY20-0762-0 | mode = cs2 }} </ref><ref>For compatibility, DCF also includes EasyScript.</ref> 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.

<pre> .ez on &amp;P.This is a paragraph. &amp;N1.First item &amp;N2.First subitem &amp;N2.Second subitem &amp;N1.Second item </pre>

is roughly equivalent to

This is a paragraph #First item ##First subitem ##Second subitem #Second item

===GML Starter Set (GMLSS)=== The '''GML Starter Set (GMLSS)'''<ref>{{cite manual | title = IBM Document Composition Facility: Generalized Markup Language Starter Set User's Guide | publisher = IBM | id = SH20-9186-07 | date = January 1991 | edition = Eighth | mode = cs2 }} </ref><ref>{{cite manual | title = IBM Document Composition Facility: Generalized Markup Language Starter Set Reference | publisher = IBM | id = SH20-9187-06 | date = January 1991 | edition = Seventh | mode = cs2 }} </ref> is a set of macro definitions and profiles that implements<ref>{{cite manual | title = Document Composition Facility Generalized Markup Language Implementation Guide | id = SH35-0050-02 | date = March 1985 | edition = Third | url = http://bitsavers.org/pdf/ibm/370/DCF/SH35-0050-2_Document_Composition_Facility_Generalized_Markup_Language_Implementation_Guide_Rel_3_Mar85.pdf | publisher = IBM | mode = cs2 }} </ref> 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.<ref name=5688-015/>

Although IBM no longer supports BookMaster, there is software<ref>{{Citation |last=Patterson |first=Ross |title=Convert BookMaster files to HTML |date=2025-11-06 |url=https://github.com/RossPatterson/B2H |access-date=2025-11-19}}</ref> to convert old BookMaster documents to HTML.

===BookManager=== '''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.<ref>{{cite web|url=http://publib.boulder.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.bkma900%2Fw3bib.htm|year=2011|title=z/OS V1R10.0-V1R12.0 Library Server Getting Started|author=IBM Corporation|accessdate=2012-02-27}}</ref> 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."<ref>{{cite web | title = IBM BookManager BookServer for Windows V2.3, IBM BookManager BookServer for AIX and Linux V2.3, and IBM BookManager Build for Windows V2.3 Increases Ease of Use | id = LTR 201-273 | year = 2001 | url = http://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&appname=iSource&supplier=897&letternum=ENUS201-273 | work = Announcement Letters | publisher = IBM Corporation | accessdate = 2012-02-27 }} </ref>

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.<ref>{{Cite web|date=2019-04-17|title=Downloadable free BookManager tools and components|url=https://www.ibm.com/support/pages/downloadable-free-bookmanager-tools-and-components|access-date=2021-10-04|website=www.ibm.com|language=en}}</ref> An independent developer, Kev Bowling, created and released software that uses IBM's BookManager code libraries to convert BookManager documents to PDF.<ref>{{Citation|last=Bowling|first=Kevin|title=boo2pdf|date=2020-12-17|url=https://github.com/kev009/boo2pdf|access-date=2021-10-04}}</ref>

==See also== * Markup language * Typesetting * Runoff * Scribe (markup language)

== References == {{reflist}}

== External links == *{{cite book|publisher=IBM Corporation|title=DCF: SCRIPT/VS Language Reference|year=1999|url=http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsml7m00/CCONTENTS|archive-url=https://archive.today/20121209094755/http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsml7m00/CCONTENTS|url-status=dead|archive-date=December 9, 2012}}SH35-0070-07 *{{cite book|publisher=IBM Corporation|title=DCF V1R4.0: SCRIPT/VS Text Programmer's Guide|year=1999|url=http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsmp7m00/CCONTENTS|archive-url=https://archive.today/20121216085212/http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dsmp7m00/CCONTENTS|url-status=dead|archive-date=December 16, 2012}}SH35-0069-07 *[http://mit.edu/saltzer/www/publications/ctss/AH.9.01.html "CTSS PROGRAMMER'S GUIDE Section AH.9.01, 12/66"]

Category:IBM software Category:Typesetting software Category:Markup languages Category:IBM mainframe software