A diferencia de otros lenguajes, en Cobol hay que reconocer que la función de compilación es un poco más compleja de lo que sería recomendable. Pero bueno, al fin y al cabo, es una tarea que sólo hay que preparar al principio, cuando configuramos nuestro entorno. Luego es sencillo lanzar la función una y otra vez.
El compilador de Cobol normalmente se compone de 3 partes: COMPILE, LINK y GO. Cuando preparemos nuestro JCL de compilación, tendremos que tener en cuenta que debemos proporcionar toda la información necesaria para que puedan completarse los 3 pasos.
Mostramos a continuación cómo sería un JCL con el que se podría realizar la compilación completa (COMPILE, LINK y GO) de un programa Cobol que no contenga accesos DB2 (más adelante, en otro post, indicaremos cómo se pueden realizar las compilaciones con DB2).
Sería lo siguiente para compilar, por ejemplo, el programa JJ0004CB.
//JJCOM1CL JOB 102,'COMPILADOR COMPLETO',NOTIFY=&SYSUID,
// MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
//**************************************************************
//* SYSLIB ES LA LIBRERIA DE COPYS
//* SYSIN ES LA LIBRERIA DE FUENTES
//* SYSLMOD ES LA LIBRERIA DE EJECUTABLES
//**************************************************************
//STEP0 EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
//* LIBRERIA EN LA QUE SE ENCUENTRA EL COMPILADOR IGYCRCTL
//COBOL.STEPLIB DD DSN=IGY410.SIGYCOMP,DISP=SHR
//* LIBRERIA DE FUENTES
//COBOL.SYSIN DD DSN=LIBPR.FUENTES.JJ00(JJ0004CB),DISP=SHR
//* STEPLIB DD DSN=LIBPR.MODULOS.JJ00,DISP=SHR
//* AÑADIMOS COPYS Y MODULOS PARA PASO LKED DE IGYWCL (PGM HEWL)
//LKED.SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
// DD DSN=LIBPR.COPYS.JJ00,DISP=SHR
//LKED.SYSLMOD DD DSN=LIBPR.MODULOS.JJ00(JJ0004CB),DISP=SHR
//
Saludos.