Disclaimer: I haven't written JCL for over 20 years now and am a bit rusty.
TLA for Job Control Language. The method of choice to talk to computers when punch cards were en vogue. Imagine a non-interactive shell script, if you like. Mainly used for IBM operation systems but often available in a similar format in all operating systems with strong batch features.

A simple example follows :

//HOGGLE01 JOB 
//  EXEC PGM=FLOBBO
//SYSIN DD *
happy application input data lives here
just punched on cards and read line by line
/*
//

So what does this do ? Start a job called HOGGLE01 (allowing the operator to do nasty things with it by name), runs a progam named FLOBBO that reads input from the standard input (SYSIN). The input is just put after the DD * statement (* is the equivalent of stdin), read by FLOBBO until it reads the EOF, which is a card with /* on it. The last card, //, is the end-of-job.

Of course, JCL allows for way more complicated things - including job nets (run job 1, depending on the result, run either job 2 or job 3), conditional execution of job steps, plus loads of more or less well-documented options, switches and parameters.