Job Control Language

scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem

Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems. It instructs 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. It can indicate under what conditions to skip a step.

There are two distinct IBM Job Control languages:

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

  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 of disk space to which it can grow, the name of a tape to be pre-mounted