Job Control Language

Job Control Language (JCL) is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem.[1] The purpose of JCL is to say which programs to run, using which files or devices[2] for input or output, and at times to also indicate under what conditions to skip a step. Parameters in the JCL can also provide accounting information for tracking the resources used by a job as well as which machine the job should run on.

There are two distinct IBM Job Control Languages:

They share some basic syntax rules and a few basic concepts, but are otherwise very different.[3]

The VM operating system does not have JCL as such; the CP and CMS components each have command languages.

  1. ^ "Every job submitted for execution ... must include JCL statements" -- ibm.com
  2. ^ and many more complex details, such as whether the file is to be retained or deleted, the maximum disk space to which it can grow, the name of a tape to be pre-mounted
  3. ^ Ashley and Fernandez, Job Control Language, p. 1.