
Компиляцияикомпоновкапрограммвz/OS 303
//*
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K
//STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,
// DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSNAME=&&LOADSET,UNIT=VIO,
// DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
// DCB=(BLKSIZE=&SYSLBLK)
//SYSUT1 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT2 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT3 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT4 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT5 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT6 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT7 DD UNIT=VIO,SPACE=(CYL,(1,1))
//LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K
//SYSLIB DD DSNAME=&LIBPRFX..SCEELKED,
// DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSNAME=&PGMLIB(&GOPGM),
// SPACE=(TRK,(10,10,1)),
// UNIT=VIO,DISP=(MOD,PASS)
//SYSUT1 DD UNIT=VIO,SPACE=(TRK,(10,10))
Процедура компиляции, компоновки и запуска в COBOL
JCL-код в Примере 10.9 выполняет процедуру IGYWCLG, которая представляет собой
трехшаговую процедуру компиляции исходной программы, ее компоновки в загрузоч-
ную библиотеку и последующего выполнения загрузочного модуля. Первые два шага не
отличаются от приведенных в примере с компиляцией и компоновкой (Пример 10.7).
Однако, если в Примере 10.7 выполняется замещение оператора SYSLMOD DD для пер-
манентного сохранения загрузочного модуля, то в Примере 10.9 нам не требуется его
сохранять для выполнения. Поэтому замещение оператора SYSLMOD DD в Примере
10.9 заключено в квадратные скобки, указывая, что оно является необязательным.
Если оно используется, тогда загрузочный модуль PROG1 будет перманентно со-
хранен в MY.LOADLIB. Если оно не используется, тогда загрузочный модуль будет со-
хранен во временном наборе данных и удален после этапа запуска (GO).
В Примере 10.9 мы видим, что JCL-код очень похож на JCL-код, использовавшийся
в задании простой компиляции (см. Пример 10.3). По сравнению с JCL-кодом в При-
мере 10.8, единственное различие в JCL-коде в Примере 10.10 состоит в том, что был