JCL
IBMメインフレームでバッチジョブを記述する言語。文字を一つ間違えただけで実行全体が失敗することで悪名高い。
Job Control LanguageはOS/360とともに登場した。プログラムが何をするかではなく、どう実行するかを記述する。どのプログラムを起動するか、ステップの順序、どのデータセットを割り当てるか、ジョブにどれだけの資源を許すか、といったことだ。構文は位置依存で、すべての行がスラッシュ2つで始まる。//STEP1 EXEC PGM=SORTのように書き、続く//DD文で論理ファイル名を実際のデータセットに結び付ける。
難解という評判は妥当で、エラーメッセージは調べるべきコードであり、データセットのブロックサイズが不適切なだけで数時間後に異常終了することもある。それでもこの言語は生き残っている。銀行の日次処理を締めるz/OSのバッチジョブは今もJCLで動いており、扱える人材は希少になった。