SCRIPT (마크업)

**SCRIPT**는 제어 프로그램-67/캠브리지 모니터 시스템(CP-67/CMS) 하의 Script와 가상 머신 기능/370(VM/370) 및 OS/VS2의 시분할 선택 기능(TSO) 하의 Script/370에서 시작된 일련의 텍스트 마크업 언어들을 말한다. 현재 버전인 **SCRIPT/VS**는 IBM z/VM 및 z/OS 시스템을 위한 IBM **문서 구성 기능**(**Document Composition Facility**, **DCF**)의 일부이다. SCRIPT는 매사추세츠 공과대학교(MIT)에서 스튜어트 매드닉에 의해 CP-67/CMS용으로 개발되었으며, CTSS RUNOFF를 계승했다.

SCRIPT는 절차적 마크업 언어이다. 논리적 행의 첫 번째 열에 있는 마침표로 표시되는 제어 단어(control words)라고 불리는 인라인 명령어가 형식화된 텍스트의 원하는 모양을 설명한다. SCRIPT는 원래 텍스트가 나중에 정의된 변수를 참조할 수 있도록 2PASS 옵션을 제공했으나, 이후 버전에서는 2회 이상의 패스를 허용했다.

## 역사
1968년 "IBM은 MIT의 스튜어트 매드닉과 간단한 문서 준비 [시스템]을 작성하기로 계약했고..." 이는 CP/67에서 실행되었다. 그는 MIT의 호환 시분할 시스템(CTSS) RUNOFF를 모델로 삼았다.
1974년 예일 대학교의 윌리엄 드와이어(William Dwyer)는 Script의 CP-67 버전을 NSCRIPT라는 이름으로 OS/360의 시분할 선택 기능(TSO)으로 이식했다. 워털루 대학교는 1974년에 NSCRIPT를 Waterloo SCRIPT로 재작성하고 확장했으며, 나중에 새 릴리스에 비용을 청구하기 전까지 몇몇 릴리스 동안 CMS 및 TSO 사용자들에게 무료로 제공했다.

1978년경 VM/CMS에서 실행되던 IBM의 Script/370은 문서 구성 기능(DCF)으로 발전했으며, CMS, DOS/VS, OS/VS1 및 OS/VS2에서 SCRIPT/VS를 지원하고 IBM 3800을 지원했다. 또한 SCRIPT/PC라는 이름의 PC/MS-DOS 버전도 존재했다.

## 기본 SCRIPT 제어 단어
기본 Script 제어 단어는 마침표로 시작하며 피연산자 앞에 공백을 둔다. 보통 1열에서 시작하지만, 단일 행에 세미콜론으로 구분하여 여러 제어 단어를 코딩할 수도 있다.

아래의 설명과 표는 DCF에서 선택된 제어 단어들을 참조하며, 이전 버전들도 이와 유사하다.

SCRIPT에서는 제어 단어의 공간 단위를 인치, 센티미터, 밀리미터, 파이카, 시스로, m-space 또는 장치 단위(현재 장치 해상도에서의 펠)를 포함한 여러 단위로 지정할 수 있다. 수직 공간 단위는 별도로 지정하지 않는 한 행(line)으로 간주된다.

## SCRIPT 매크로
Script에는 사용자 정의 매크로 기능과 매크로 정의 및 기타 명령어가 포함된 프로필을 자동으로 읽는 기능이 포함되어 있다. GML 및 EasyScript를 포함한 시맨틱 태깅을 위한 여러 패키지가 이 기능 위에 구축되어 있다.

## GML

IBM의 일반화 마크업 언어(GML)는 문서의 논리적 구조를 설명하는 기술적 마크업 계층이다. SCRIPT/VS와 GML Starter Set은 모두 System/370 플랫폼 및 그 후속 제품에서 사용되는 IBM 문서 구성 기능(DCF)의 일부이다. BookMaster와 BookManager BUILD/MVS 제품의 태그 세트는 GML Starter Set 구문 및 구현을 기초로 구축되었다.

표준 일반화 마크업 언어(SGML)는 GML의 후손이다. DCF는 SGML을 직접 처리하지 않지만, 별도의 제품으로 SGML 변환기를 사용할 수 있다.

### EasyScript
**EasyScript**는 Script/370 버전 3에 포함된 매크로 정의 및 프로필 세트로, 원시적인 버전의 GML을 구현한다. 태그는 값이 제어 단어로 설정된 변수이며, 한 행에 여러 태그를 허용한다.


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


위의 코드는 대략 다음과 같은 결과와 같다.

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

### GML Starter Set (GMLSS)
**GML Starter Set (GMLSS)**는 순수 Script/VS 제어 단어보다 더 의미론적인 방향을 가진 태그 세트를 구현하는 매크로 정의 및 프로필 세트이다. 태그는 콜론으로 시작하여 마침표로 끝나며, 이름과 닫는 마침표 사이에 속성을 포함할 수 있다. 한 행에 여러 태그가 포함될 수 있다.

### BookMaster
**Bookmaster**는 "대량의 사내 출판 애플리케이션을 위해 설계된" IBM 제품으로, DCF의 GML Starter Set을 확장한 것이다. 이는 "복잡한 문서 레이아웃을 만들기 위한 풍부한 GML 어휘 세트"로 구성된다. Bookmaster는 z/VM 및 z/OS 운영체제에서 실행된다.

IBM은 더 이상 BookMaster를 지원하지 않지만, 오래된 BookMaster 문서를 HTML로 변환하는 소프트웨어가 존재한다.

### BookManager
**BookManager**는 온라인 도서를 제작하고 읽기 위한 제품군이다. BookManager BUILD/MVS와 BookManager BUILD/VM은 SCRIPT 및 BookMaster 위에 계층화되어 있으며 z/VM 및 z/OS에서 실행될 수 있다. 텍스트 생성을 위한 다른 BookManager BUILD 제품들은 리눅스, 윈도우 또는 OS/2에서 실행되며 다양한 워드 프로세서로 작성된 파일을 BookManager 형식으로 변환한다. 텍스트 열람을 위한 BookManager Read 제품들은 다양한 시스템에서 실행된다. BookManager BookServer는 "전자 도서를 HTML 브라우저에 제공하는" 멀티 플랫폼 시스템이다.

BookManager 전자 문서는 일반적으로 파일 확장자가 .BOO로 끝난다. IBM은 BookManager 문서를 작업하고 읽을 수 있는 여러 무료 도구를 제공하며, 여기에는 IBM Softcopy Reader라는 리더/뷰어가 포함된다. 독립 개발자인 케빈 볼링(Kevin Bowling)은 IBM의 BookManager 코드 라이브러리를 사용하여 BookManager 문서를 PDF로 변환하는 소프트웨어를 제작하여 출시했다.

## 같이 보기
* 마크업 언어
* 조판
* Runoff
* Scribe (마크업 언어)

## 각주

## 외부 링크
*SH35-0070-07
*SH35-0069-07
*"CTSS PROGRAMMER'S GUIDE Section AH.9.01, 12/66"

분류:조판 소프트웨어
분류:IBM 소프트웨어
분류:마크업 언어