No Slide Title

Download Report

Transcript No Slide Title

OS Tools For The
Application Programmer
Stephen Linkin
Houston Community College
19-Apr-07
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
1
Objectives

Knowledge objectives






Describe the steps of a compile-link-and-go procedure, and list
the I/O of each step.
Understand differences source code, object modules, and load
modules
Describe functional differences between the link editor and the
loader, and understand when to use a
compile-load-and-go procedure.
Describe the extra step required in preparing
CICS programs for execution.
Name the four compile procedures IBM has
for programming languages.
List commonly used options for COBOL
compilers, and explain how to specify
them .
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
2
Objectives

Given reference material, be able to code the JCL
necessary to invoke the COBOL program
development catalog procedures, including
any DD statements necessary to allocate data
sets:
a)
b)
c)
The Compile-only Procedure
The Compile-and-link Procedure
The Compile-link-and-go Procedure
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
3
The System Flowcharts

COBOL
Compile-link-and-go
Procedure
COBOL
Compile-load-and-go
Procedure
CICS
Translate-compile-and-link
Procedure
Source program
Source program
Source program
Copy libraries

COBOL compiler
Source program
Source program
Copy libraries
COBOL compiler
Compiler output
Object module
CICS translator
Source program
Object libraries

Compiler output
Linkage editorObject module
Linkage editor
output
Translated program
Source program
Load module
Object libraries Source program
Copy libraries
Application
program
Source program
Data sets
Loader
Loader output
COBOL compiler
Application output
Object module
Source program
Data sets
Source program
Object libraries
Compiler output
Application output
Linkage editor
Linkage editor
output
Load module
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
4
IBM Procedures

Six Programming Languages
Compile
Compile
Compile,
Compile
Language
only
& link
link & go
& go
******************************************************************************************
COBOL
IGYWC
IGYWCL
IGYWCLG
IGYWCG
VS
COBOL II
High Level
Assembler
PL/I
VS Fortran 2
C
C++
COB2UC
COB2UCL
COB2UCLG
COB2UCG
ASMAC
IBMZC
VSF2C
EDCC
CBCC
ASMACL
IBMZCPL
VSF2CL
EDCCL
CBCCL
ASMACLG
IBMZCPLG
VSF2CLG
(n/a)
CBCCLG
ASMACG
IBMZCPG
VSF2CG
EDCCBG
CBCCBG
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
5
Building a PROC

Step names for the COBOL procedures
Step
Compile
Link
Go

GO
COBOL for OS/390
COBOL
LKED
GO
DD statements used with cataloged procedures
Step
COB2/COBOL
LKED
VS COBOL II
COB2
LKED
GO
ddname
Description
SYSIN
Source program input for the COBOL compiler.
SYSLIB
The copy library or libraries.
SYSLIN
Object module output.
SYSLIB
The subprogram library or libraries.
SYSLIN
Object module input.
SYSIN
Additional object module input.
SYSLMOD
Load module output.
SYSOUT
Output from DISPLAY statements.
SYSIN
Input for ACCEPT statements.
SYSDBOUT
Symbolic debugging output.
SYSUDUMP © 2002 - Mike
Abnormal
Murach & termination
Associates, (or storage dump) output.
2007 - HCC, IBM
SYSABEND
6
Translator Options for CICS
Option
QUOTE
APOST
EDF
EXCI
FLAG
Function
Use the ANSI standard quotation mark (").
Use the apostrophe (').
The Execution Diagnostic Facility is to apply to the program.
The translator is to process EXCI commands.
Print the severity of error messages produced by the
translator.
LENGTH
Generate a default length if the LENGTH option is omitted
from a CICS command.
OOCOBOL Instructs the translator to accept object-oriented COBOL
syntax.
COBOL3
Specifies that the translator is to translate programs
compiled by COBOL for OS/390.
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
7
Compiler Options for –
VS COBOL II and COBOL OS/390
Category
Object module
Option
OBJECT
DECK
Delimiter
QUOTE
Source library
Compiler listing
APOST
LIB
SOURCE
OFFSET
LIST
MAP
XREF
Testing
TEST
FDUMP
Function
Write object module output to
SYSLIN.
Write object module output to
SYSPUNCH.
Use the ANSI standard quotation
mark (").
Use the apostrophe (').
Allow Copy statements.
Print source listing.
Print offset of each Procedure
Division verb.
Print assembler listing of object
module.
Print offset of each Data Division
field.
Print sorted cross reference of data
and procedure names.
Allow interactive debugging.
Provide formatted dump at abend.
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
8
Procedure Samples

An IBM compile-only proc for COBOL
//IGYWC
LNGPRFX='SYS1.IGY',SYSLBLK=3200
 JCLPROC
to invoke
this procedure
//* COMPILE A COBOL PROGRAM
//MM01CL
JOB
(36512),'R
MENENDEZ',NOTIFY=MM01
//* CALLER MUST
SUPPLY
//COBOL.SYSIN
DD ...
//JOBPROC
JCLLIB ORDER=SYS1.IGY.SIGYPROC
//*
//STEP1
EXEC
PROC=IGYWC,PARM.COBOL='APOST,OBJECT'
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K
//COBOL.SYSIN
DSN=MM01.PAYROLL.SOURCE(PAY4000),DISP=SHR
//STEPLIB DD DD
DSNAME=&LNGPRFX..SIGYCOMP,
//COBOL.SYSLIB
DD
DSN=MM01.PAYROLL.COPYLIB,DISP=SHR
//
DISP=SHR
//COBOL.SYSLIN
DSN=MM01.PAYROLL.OBJLIB(PAY4000),DISP=SHR
//SYSPRINT DD DD
SYSOUT=*
//SYSLIN
DD DSNAME=&&LOADSET,UNIT=SYSDA,
//
DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
//
DCB=(BLKSIZE=&SYSLBLK)
//SYSUT1
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT2
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT3
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT4
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT5
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT6
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
© 2002 - Mike Murach & Associates,
//SYSUT7
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
2007 - HCC, IBM
9
//IGYWCL PROC LNGPRFX='SYS1.IGY',SYSLBLK=3200,
//
LIBPRFX='SYS1.CEE',
//
PGMLIB='&&GOSET',GOPGM=GO
//* COMPILE AND LINK EDIT A COBOL PROGRAM
//* CALLER MUST SUPPLY //COBOL.SYSIN DD ...
//*
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K
//STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,

//
DISP=SHR
//SYSPRINT DD SYSOUT=*

//SYSLIN
DD DSNAME=&&LOADSET,UNIT=SYSDA,
//
DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
//MM01CL
JOB
(36512),'R MENENDEZ',NOTIFY=MM01
//
DCB=(BLKSIZE=&SYSLBLK)
//JOBPROC
JCLLIB ORDER=SYS1.IGY.SIGYPROC
//SYSUT1
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//STEP1
EXEC
PROC=IGYWCL,PARM.COBOL='APOST,OBJECT'
//SYSUT2
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//COBOL.SYSIN
DD
DSN=MM01.PAYROLL.SOURCE(PAY4000),DISP=SHR
//SYSUT3
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT4
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//COBOL.SYSLIB
DD
DSN=MM01.PAYROLL.COPYLIB,DISP=SHR
//SYSUT5
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//*-------------------------------------------------------------*
//SYSUT6
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//LKED.SYSLMOD
DD
DSN=MM01.PAYROLL.LOADLIB(PAY4000),DISP=SHR
//SYSUT7
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//LKED.SYSLIB
DD
//LKED
EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K
//
DD
DSN=MM01.PAYROLL.OBJLIB,DISP=SHR
//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=SYSDA,DISP=(MOD,PASS)
© 2002 - Mike Murach & Associates,
//SYSUT1
DD UNIT=SYSDA,SPACE=(TRK,(10,10))
10
2007 - HCC, IBM
Procedure Samples (2)
IBM compile-and-link procedure for COBOL
JCL to invoke this procedure
//IGYWCLG PROC LNGPRFX='SYS1.IGY',SYSLBLK=3200,
//
LIBPRFX='SYS1.CEE',GOPGM=GO
//* COMPILE, LINK EDIT AND RUN A COBOL PROGRAM
//* CALLER MUST SUPPLY //COBOL.SYSIN DD ...
//*
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K
//STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,
//
DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN
DD DSNAME=&&LOADSET,UNIT=SYSDA,
//
DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
//
DCB=(BLKSIZE=&SYSLBLK)
//SYSUT1
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT2
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//MM01CL
JOB
(36512),'R MENENDEZ',NOTIFY=MM01
//SYSUT3
DD
UNIT=SYSDA,SPACE=(CYL,(1,1))
//JOBPROC
JCLLIB ORDER=SYS1.IGY.SIGYPROC
//SYSUT4
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//STEP1
EXEC
PROC=IGYWCLG,PARM.COBOL='APOST,OBJECT'
//SYSUT5
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT6
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//COBOL.SYSIN
DD
DSN=MM01.PAYROLL.SOURCE(PAY4000),DISP=SHR
//SYSUT7
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//COBOL.SYSLIB
DD
DSN=MM01.PAYROLL.COPYLIB,DISP=SHR
//LKED
EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K
//*-------------------------------------------------------------*
//SYSLIB
DD DSNAME=&LIBPRFX..SCEELKED,
//
DISP=SHR
//LKED.SYSLMOD
DD
DSN=MM01.PAYROLL.LOADLIB(PAY4000),DISP=SHR
//SYSPRINT
DD
SYSOUT=*
//LKED.SYSLIB DD
//SYSLIN
DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)
//
DD
DSN=MM01.PAYROLL.OBJLIB,DISP=SHR
//
DD DDNAME=SYSIN
//SYSLMOD DD DSNAME=&&GOSET(&GOPGM),SPACE=(TRK,(10,10,1)),
//*-------------------------------------------------------------*
//
//GO.SYSOUT UNIT=SYSDA,DISP=(MOD,PASS)
DD
SYSOUT=A
//SYSUT1
DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//GO.PAYTRAN
DD
DSN=MM01.PAYROLL.TRANS,DISP=SHR
//GO
EXEC PGM=*.LKED.SYSLMOD,COND=((8,LT,COBOL),(4,LT,LKED)),
//
//GO.PAYRPT REGION=2048K
DD
SYSOUT=A
//STEPLIB DD DSNAME=&LIBPRFX..SCEERUN,
//
DISP=SHR
//SYSPRINT DD SYSOUT=*
© 2002 - Mike Murach & Associates,
//CEEDUMP DD SYSOUT=*
11
2007 - HCC, IBM
//SYSUDUMP DD SYSOUT=*
Procedure Samples (3)


Compile-link-and-go procedure for COBOL
JCL invoking the compile-link-and-go procedure
Procedure Samples (4)
//COB
EXECPROC
PGM=IGYCRCTL,REGION=&REG,
//DFHYITVL
SUFFIX=1$,
/* Suffix for translator module

//
PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF'
//
INDEX='CICSTS13.CICS',
/* Qualifier(s) CICS libraries
//STEPLIB DD DSN=&AD370HLQ..SIGYCOMP,DISP=SHR
//
PROGLIB='CICSTS13.CICS.SDFHLOAD', /* Name of o/p library
//SYSLIB
DD DSN=&DSCTLIB,DISP=SHR
//
DSCTLIB='CICSTS13.CICS.SDFHCOB',
/* Private macro/dsect
//
DD DSN=&INDEX..SDFHCOB,DISP=SHR
//
AD370HLQ='SYS1',
/* Qualifier(s) AD/Cycle compiler
//
DD DSN=&INDEX..SDFHMAC,DISP=SHR
//
LE370HLQ='SYS1',
/* Qualifier(s) LE/370 libraries
//
DD DSN=&INDEX..SDFHSAMP,DISP=SHR
//MM01CMPL
JOB
(36512),'R.MENENDEZ',NOTIFY=MM01
//SYSPRINT
DD SYSOUT=&OUTC
//
OUTC=A,
/* Class for print output
//CICSCMP
EXEC
DFHYITVL,
//SYSIN
DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//
REG=4M,
/* Region size for all steps
//SYSLIN
DD DSN=&&LOADSET,DISP=(MOD,PASS),
//
PROGLIB='MM01.CICS.LOADLIB'
//
LNKPARM='LIST,XREF',
/* Link edit parameters
//
UNIT=&WORK,SPACE=(80,(250,100))
//TRN.SYSIN
DD
DSN=MM01.CICS.SOURCE(CUSTMNT1),DISP=SHR
//
STUB='DFHEILID',
/* Lked INC. fr DFHELII
.
//
LIB='SDFHC370',
/* Library
//COB.SYSLIB
DD
.
//
WORK=SYSDA
/* Unit for work datasets
//LKED
EXEC
PGM=IEWL,REGION=&REG,
//
DD
DSN=MM01.CICS.COPYLIB,DISP=SHR
//TRN
EXECPARM='&LNKPARM',COND=(5,LT,COB)
PGM=DFHECP&SUFFIX,PARM='COBOL3',REGION=&REG
//
//LKED.SYSLIB
DD
//SYSLIB
DDDD
DSN=&INDEX..SDFHLOAD,DISP=SHR
//STEPLIB
DSN=&INDEX..SDFHLOAD,DISP=SHR
//
DD
DSN=MM01.CICS.OBJLIB.DISP=SHR
//
//SYSPRINTDDDDDSN=&LE370HLQ..SCEELKED,DISP=SHR
SYSOUT=&OUTC
//LKED.SYSIN
DD
*
.
//SYSPUNCH DD DSN=&&SYSCIN,DISP=(,PASS),
.
// NAME CUSTMNT1(R)
UNIT=&WORK,DCB=BLKSIZE=400,
//SYSLIN
DD DSN=&&COPYLINK,DISP=(OLD,DELETE)
/*
//
SPACE=(400,(400,100))
//
DD DSN=&&LOADSET,DISP=(OLD,DELETE)
//
DD DDNAME=SYSIN (CLICK TO CONTINUE)
IBM translate-compile-and-link for CICS/COBOL
JCL invoking the translate-compile-and-link proc
for CICS/COBOL
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
12
End Presentation
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
13