IBM MAINFRAME: Difference between Compile-link-go and compile-link

Loading...
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

Loading...

IBM MAINFRAME: Difference between Compile-link-go and compile-link

Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref Difference between Compile-link-go and comp...

148KB Sizes 2 Downloads 8 Views

Recommend Documents

No documents