Issue No. 01 - January (1972 vol. 21)
S. Campbell , Bell Telephone Lab., Inc.
Since IBM's introduction of the System/360 and its operating system OS/360, probably no other aspect of that vast collection of programs and publications?the IBM OS Bibliography alone runs to 100 pages?has caused more heated discussions or been as poorly understood by its users as the job control language JCL. It is the one feature of the operating system that all users must employ: it is the gateway to the goodies of OS. JCL is not a programming language in the usual sense; it is not translated into machine instructions. Nor is it a command language, wherein each statement causes a specific action to take place. JCL is a job description language; it is a language used by the programmer to describe to the machine's operating system the work he has for it to do. To the System/360 operating system, a job is completely described by specifying a sequence of programs to be executed and, for each program, a list of external data sets required. Because there are so many possible combinations of programs and data, programs with all the various constraints applicable to them, data sets that can reside on any of a number of different devices, and often in different ways on the same device, because of all these possibilities and because JCL avoids making assumptions about what the programmer intends, the job descriptions expressed in JCL often require considerable detail.
S. Campbell, "B72-4 System/360 Job Control Language", IEEE Transactions on Computers, vol. 21, no. , pp. 108-109, January 1972, doi:10.1109/T-C.1972.223442