Idea Transcript
Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
Difference between Compile-link-go and compile-link
IBM Manuals
IBMMAINFRAMES.com Support Forums -> COBOL Programming
Quick References View previous topic :: :: View next topic
Author
Message
Vedam
Posted: Thu Apr 10, 2008 12:25 pm Post subject: Difference between Compile-link-go and compile-link
New User
Hi, Joined: 24 Apr 2007 Posts: 23 Location: India
Can you please let me know the difference between Compile-Link-go and Compile-Link? Thanks
Back to top
revel
Posted: Thu Apr 10, 2008 12:57 pm Post subject: Hi Vedam
Active User
Hai Joined: 05 Apr 2005 Posts: 135 Location: Bangalore/ChennaiINDIA
Is this Home Work :-) Ok, Here is answer for your Question To RUN Any application Program you should convert it into Machine Language(ie Executable instruction) To do So We will use JCL, The JCL will have 3 steps normally 1. COMPILATION STEP - It will convert SOURCE(Say COBOL program) into OBJECT MODULE (Its not executable intruction) Ex; COBOL COMPILER - IGYCRCTL 2. LINAKGE STEP This STEP will LINK EDIT OBJECT MODULE and will yield LOAD MODULE(This is executable instruction) 3. RUN Step This Step is used to RUN Application program(Mean in turn it will use LOAD MODULE) Hope u clear
Back to top Aaru
Posted: Thu Apr 10, 2008 2:19 pm Post subject: Reply to: Difference between Compile-link-go and compile-lin
Senior Member
revel, Joined: 03 Jul 2007 Posts: 1288 Location: Chennai, India
You have explained how to compile-link-run a cobol program. But i think OP was something different. He wanted to know the difference between compile-link-go and compile-link. Gng by the terms i think compile-link-go -> Compile+link+run compile-link -> Just compile and link.
Back to top Vedam
Posted: Thu Apr 10, 2008 2:48 pm Post subject: Reply to: Difference between Compile-link-go and compile-lin
New User
Hi, Joined: 24 Apr 2007 Posts: 23 Location: India
Thanks for your replies... 1. When you mean by 'Run (Go)' the application program, does it actually submit the JCl for program execution or something else? 2. During 'Link', the load module gets created permanently, right?
Back to top dbzTHEdinosauer
Posted: Thu Apr 10, 2008 3:18 pm Post subject:
Global Moderator
Vedam, Joined: 20 Oct 2006 Posts: 6970 Location: porcelain throne
1. compile/link/go is a job that has the three steps: compile step link step exec pgm='your program' you create the jcl and submit the job. 2. yes
Back to top dbzTHEdinosauer
Posted: Thu Apr 10, 2008 3:44 pm Post subject:
Global Moderator
compile link and go is just an abbreviation for a job that contains the compile, link and exec program (test the program) steps. Joined: 20 Oct 2006 Posts: 6970 Location: porcelain throne
compile & link means a job that has only the compile and link steps. an additional job with the appropriate JCL to support the invocation of your program would be needed in the case.
Back to top Aaru
Posted: Thu Apr 10, 2008 4:50 pm Post subject: Reply to: Difference between Compile-link-go and compile-lin
Senior Member
Dick, Joined: 03 Jul 2007 Posts: 1288 Location: Chennai, India
Quote: 2. During 'Link', the load module gets created permanently, right?
Dick wrote: Quote: yes
It also depends on what is coded in the DISP parameter.
Back to top dbzTHEdinosauer
Posted: Thu Apr 10, 2008 5:27 pm Post subject:
Global Moderator
Aaru, that is true, also depends whether the output dsn for the loadmodule is a temp (&&..) or a catlg ds. Joined: 20 Oct 2006 Posts: 6970 Location: porcelain throne
but, if you want to be picky, which disp parm? I doubt if the OP knows what you are talking about.
Back to top Phrzby Phil
Posted: Thu Apr 10, 2008 5:54 pm Post subject:
Active Member
For programs not requiring link (e.g., no subroutines), there is also compile-go, which uses the loader, rather than the link-editor. Joined: 31 Oct 2006 Posts: 971 Location: Richmond, Virginia
Back to top Aaru
Posted: Thu Apr 10, 2008 7:47 pm Post subject: Reply to: Difference between Compile-link-go and compile-lin
Senior Member
Dick, Joined: 03 Jul 2007 Posts: 1288 Location: Chennai, India
Quote: but, if you want to be picky, which disp parm? I doubt if the OP knows what you are talking about.
Hmm yes, even i don't think OP would have understood
Back to top revel
Posted: Fri Apr 11, 2008 12:08 pm Post subject:
Active User
Dear Phrzby Phil, Joined: 05 Apr 2005 Posts: 135 Location: Bangalore/ChennaiINDIA
Quote: For programs not requiring link (e.g., no subroutines), there is also compile-go, which uses the loader, rather than the link-editor
I completly disagree about this, We must need LINK STEP(Having LINKER say IEWL/HEWL) for getting Load module. In next that is GO Step, we will use created load module for RUN/EXECUTION If u want to bypass that STEP ie LINK STEP, U can Route load module to TEMPERUARY DATASET and Make use of That in GO STEP Then it Will work Hope u r getting
Back to top dick scherrer
Posted: Fri Apr 11, 2008 1:17 pm Post subject:
Site Director
Hello, Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
Quote: If u want to bypass that STEP ie LINK STEP, U can Route load module to TEMPERUARY DATASET
Huh? This does not bypass the link step - it simply places the link output in a temporary dataset. Quote: I completly disagree about this, We must need LINK STEP(Having LINKER say IEWL/HEWL) for getting Load module.
Maybe you just learned (or will have learned) something new. What if no load module is needed? As was posted: Quote: For programs not requiring link (e.g., no subroutines), there is also compile-go, which uses the loader, rather than the link-editor.
Back to top revel
Posted: Fri Apr 11, 2008 4:11 pm Post subject:
Active User
dick scherrer, Joined: 05 Apr 2005 Posts: 135 Location: Bangalore/ChennaiINDIA
What i meant is Quote: If u want to bypass that STEP ie LINK STEP, U can Route load module to TEMPERUARY DATASET
mean if i won't include LINK STEP in JCL, it will places load module in Temperuary Library and To run that pgm we should referback to a load module where it is created(ie Temperuary dataset) Please See Sentence which i gaven above Quote: If u want to bypass that STEP ie LINK STEP, U can Route load module to TEMPERUARY DATASET and Make use of That in GO STEP Then it Will work
Back to top enrico-sorichetti
Posted: Fri Apr 11, 2008 4:24 pm Post subject: Reply to: Difference between Compile-link-go and compile-lin
Global Moderator
if You bypass the link/bind step You will not have a load module ! Joined: 14 Mar 2007 Posts: 10455 Location: italy
a load module is produced only by the linkage_editor/binder any compiler produces only object format thing ( not executable ) a load module library has a recfm U ( undefined ) an object library ( output of a compilation ) has a recfm FB ( usually )
Back to top Phrzby Phil
Posted: Fri Apr 11, 2008 6:01 pm Post subject:
Active Member
Joined: 31 Oct 2006 Posts: 971 Location: Richmond, Virginia
Well, all I can say is that I do in fact run a compile-go proc, and it does not have a link-edit step. There is no load module as such stored in either a perm or temp dataset, as I do not need it the loader (an IBM utility) simply creates a "load module" on the fly and runs it. Then it's gone. If someone else says I have not been doing that, then what can I say?
Back to top revel
Posted: Wed Apr 16, 2008 10:25 am Post subject:
Active User
Hi all, Joined: 05 Apr 2005 Posts: 135 Location: Bangalore/ChennaiINDIA
Quote: Can you please let me know the difference between Compile-Link-go and Compile-Link
The COMPILE-LINK-GO will have three STEPS in a PROC where as COMPILE-LINK will have 2 STEPS in PROC Find below differance between these 2 COMPILE-LINK-GO _________________ Code: //IGYWCLG PROC LNGPRFX='IGY.V2R1M0',SYSLBLK=3200, // LIBPRFX='CEE',GOPGM=GO //* //* COMPILE, LINK EDIT AND RUN A COBOL PROGRAM //* //* PARAMETER DEFAULT VALUE USAGE //* LNGPRFX IGY.V2R1M0 //* SYSLBLK 3200 //* LIBPRFX CEE //* GOPGM GO //* //* 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=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=&&GOSET(&GOPGM),SPACE=(TRK,(10,10,1)), // UNIT=VIO,DISP=(MOD,PASS) //SYSUT1 DD UNIT=VIO,SPACE=(TRK,(10,10)) //GO EXEC PGM=*.LKED.SYSLMOD,COND=((8,LT,COBOL),(4,LT,LKED)), // REGION=2048K //STEPLIB DD DSNAME=&LIBPRFX..SCEERUN, // DISP=SHR //SYSPRINT DD SYSOUT=* //CEEDUMP DD SYSOUT=* //SYSUDUMP DD SYSOUT=*
Here Load module will created in a STEP Code: //LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K
. . Code: //SYSLMOD DD DSNAME=&&GOSET(&GOPGM),SPACE=(TRK,(10,10,1)),
So it is placing in a library &&GOSET ie Temperuary dataset In GO STEP ie Code: //GO EXEC PGM=*.LKED.SYSLMOD,COND=((8,LT,COBOL),(4,LT,LKED)),
We are referback using a parameter called PGM=*.LKED.SYSLMOD --- So its pointing out to the load module library then it will RUN COMPILE-LINK _____________ Code: //IGYWCLG PROC LNGPRFX='IGY.V2R1M0',SYSLBLK=3200, // LIBPRFX='CEE',GOPGM=GO //* //* COMPILE, LINK EDIT AND RUN A COBOL PROGRAM //* //* PARAMETER DEFAULT VALUE USAGE //* LNGPRFX IGY.V2R1M0 //* SYSLBLK 3200 //* LIBPRFX CEE //* GOPGM GO //* //* 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=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=&&GOSET(&GOPGM),SPACE=(TRK,(10,10,1)), // UNIT=VIO,DISP=(MOD,PASS) //SYSUT1 DD UNIT=VIO,SPACE=(TRK,(10,10))
To RUN You should write one JCL like Code: // job card //STEP01 EXEC PGM=member name //STEPLIB DD DSN=load module library < which is created in LKED STEP and In SYSLMOD ddname //SYSIN DD .... //SYSOUT DD ....
Hope u clear
Back to top
View previous topic :: :: View next topic
All times are GMT + 6 Hours
IBMMAINFRAMES.com Support Forums -> COBOL Programming
Page 1 of 1 Search our Forum:
Custom Search
Similar Topics Topic
Author
Forum
Posted
Defining SYSLIB to USS c++ (cxx) comp...
Harold Barnes
All Other Mainframe Topics
2
Sat Apr 07, 2018 5:06 am
ISMF Difference between volume count ...
upendrasri
IBM Tools
2
Tue Dec 05, 2017 12:40 pm
Finding difference between two PS fil...
Vignesh Sid
SYNCSORT
5
Mon Oct 30, 2017 1:13 pm
IEW2456E error when link-editing a C ...
Senthilraj
JCL & VSAM
0
Fri Oct 13, 2017 3:12 pm
Difference in SORT & ICETOOL
Mohan Kothakota
DFSORT/ICETOOL
5
Fri Sep 22, 2017 4:56 pm
© 2003-2017 IBM MAINFRAME Software Support Division
Replies
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us