IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Understanding Program Objects


IBM Mainframe Forums -> All Other Mainframe Topics
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
jerryte

Active User


Joined: 29 Oct 2010
Posts: 202
Location: Toronto, ON, Canada

PostPosted: Tue Apr 14, 2015 12:53 am
Reply with quote

I want to gain a better understanding of compiled program object versus a linked load module. Is there an IBM redbook that explains these concepts and how to use them? I have an IBM manual on Program Management User Guide but it focuses more on the Binder tool rather then on the concepts. If someone can point me in the right direction then I would like to read up on this. Thanks

Some background - the current method I use is to compile a program and then link the load module with AUTOCALL. This creates problems if there are changes to called subroutines. I have to be careful for the order that these are compiled in order to get the latest version of each.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Apr 14, 2015 2:06 am
Reply with quote

Which compiler version and release? I'm assuming for now you are talking about Object decks which are the main output of the compiler, rather than Program Objects in a PDSE which are the "loadmodules" when using V5.0 or higher.
Back to top
View user's profile Send private message
jerryte

Active User


Joined: 29 Oct 2010
Posts: 202
Location: Toronto, ON, Canada

PostPosted: Tue Apr 14, 2015 5:45 pm
Reply with quote

Bill Woodger wrote:
Which compiler version and release? I'm assuming for now you are talking about Object decks which are the main output of the compiler, rather than Program Objects in a PDSE which are the "loadmodules" when using V5.0 or higher.

What is the difference between a Program Object and a Load module? I am using COBOL version 4 on z/OS
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Tue Apr 14, 2015 6:10 pm
Reply with quote

You will find the differences here

z/OS MVS Program Management: User's Guide and Reference
SA23-1393-00
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Apr 14, 2015 6:36 pm
Reply with quote

OK, you're 4, so put actual Program Objects to the side.

The compiler generates code. It does this on 80-byte fixed-length records. Because in the distant past, these would be physically punched on cards which would then be read by the linkage editor to make into the executable program.

These are "object decks" or "object programs".

With COBOL V5, you get Program Objects. Program Objects are also used in specific situations in V4.

Here's some random quote from many:

Quote:
Partitioned data set extended (PDSE) load library data sets

Enterprise COBOL V5 executables are program objects that can only reside in PDSE data sets. This is not an entirely new requirement. Enterprise COBOL V4 used program objects and PDSE for long names, COBOL/Java interoperability, and DLL support.

If you are currently using PDS data sets for load libraries, you need to move to PDSE data set load libraries before running COBOL V5 programs. Otherwise, when you try to bind a COBOL V5 object program into a PDS dataset, the operation will fail with this error message:

IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT BE SAVED IN LOAD MODULE FORMAT.


So a PDSE load library containing Enterprise COBOL V5+ executables contains Program Objects, not Load Modules. COBOL V5+ executables cannot use a PDS, they cannot be Load Modules.

There is more to it than a change in name, but at the simplest level you can view it as just that.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 917
Location: The Universe

PostPosted: Tue Apr 14, 2015 8:48 pm
Reply with quote

From a practical point of view a "program object" in a PDSE can use external names longer than 8 bytes.

You have all the advantages (automatic space reclamation when you delete a member) and disadvantages (poor performance relative to a PDS, greater space requirements) of a PDSE.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> All Other Mainframe Topics

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts 10 byte RBA conversion -non applicati... JCL & VSAM 1
No new posts DB2 Event passed to the Application P... DB2 1
No new posts How to pass the PARM value to my targ... COBOL Programming 8
No new posts REXX code to expand copybook in a cob... CLIST & REXX 2
Search our Forums:

Back to Top