Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. The purpose of JCL is to say which programs to run, using which files or devices 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: one for the operating system lineage that begins with DOS/360 and whose latest member is z/VSE; and the other for the lineage from OS/360 to z/OS, the latter now including JES extensions, Job Entry Control Language (JECL). They share some basic syntax rules and a few basic concepts, but are otherwise very different. The VM operating system does not have JCL as such; the CP and CMS components each have command languages. Certain words or phrases used in conjunction to JCL are specific to IBM mainframe technology. Dataset: a "dataset" is a file; it can be temporary or permanent, and located on a disk drive, tape storage, or other device. Member: a "member" of a partitioned dataset (PDS) is an individual dataset within a PDS. A member can be accessed by specifying the name of the PDS with the member name in parentheses. For example, the system macro GETMAIN in SYS1.MACLIB can be referenced as SYS1.MACLIB(GETMAIN). Partitioned dataset: a "partitioned dataset" or PDS is collection of members, or archive. Partitioned datasets are commonly used to store textual data such as source code, assembler macros (SYS1.MACLIB), system configuration (SYS1.PARMLIB), reusable JCL procedures (SYS1.PROCLIB), etc. As such, they have something in common with archive files (ZIP, TAR, etc) and with directories in other operating systems. They are also used to store binary code (load modules or program objects); in that guise, they are roughly analogous to ar-based static libraries in Unix-based systems.
Nicola Marzari, Giovanni Pizzi, Martin Uhrin, Sebastiaan Philippe Huber