JCL is an acronym of Job Control Language. For a program to be executed in the mainframe, certain sets of instruction (what program to execute, where to find the program and all the associated details) should be provided to the mainframe. These set of instructions are called JCL. It is a control language without which programs cannot be executed in mainframe.
JCL is used to run batch jobs. Batch job is a unit of work done without user interaction and runs in the background.
An example of JCL,
//PROGPUB JOB NOTIFY=&SYSUID // SET PGM=PROGRAM1 //STEP1 EXEC IGYWCL,PARM.COBOL='LIB' //COBOL.SYSIN DD DSN=PROGPUB.COBOL.PROGRAMS(&PGM),DISP=SHR //COBOL.SYSLIB DD DSN=PROGPUB.COBOL.COPY,DISP=SHR //LKED.SYSLMOD DD DSN=PROGPUB.COBOL.LOADLIB(&PGM),DISP=SHR