JCL
Le langage des mainframes IBM pour décrire un travail par lots — réputé pour laisser un simple caractère mal placé faire échouer toute une exécution.
Le Job Control Language est arrivé avec OS/360 et ne décrit pas ce que fait un programme mais comment il doit être exécuté : quel programme démarre, dans quel ordre se succèdent les étapes, quels jeux de données sont rattachés et combien de ressources le travail peut utiliser. La syntaxe est positionnelle et chaque ligne commence par deux barres obliques : //STEP1 EXEC PGM=SORT suivi d'instructions //DD qui associent des noms de fichiers logiques à de vrais jeux de données.
Sa réputation d'obscurité est méritée — les messages d'erreur sont des codes qu'il faut chercher dans une table, et une exécution peut échouer après plusieurs heures parce qu'un jeu de données n'avait pas la bonne taille de bloc. Le langage survit pourtant : les travaux batch sur z/OS qui clôturent la journée bancaire sont encore pilotés par JCL, et cette compétence est devenue rare.