Does IBM mainframe deals with Pcode and then with EXE ?

Hi Experts

Making a Cobol/ CICS application
Does IBM mainframe deals with Pcode and then with EXE ?
If so, Is it optional to make the EXE ? (I mean: it could run pcode)

Thanks in advance
Eduardo FuerteAsked:
Who is Participating?
giltjrConnect With a Mentor Commented:
O.K. clipper is the closest thing:

Technically the output from the compile step is object code, I would assume that is the same thing as pCode.

The object code is the actual executable machine language for your program.

The linkage editor takes the object code from your program makes the actual load module.

The load module may include other code that your program calls or may be needed by the enviroment you are executing in.

You can think of CICS as a application server. It needs specfic things in the load module, so the linkage editor merges that information with your program.

Now, the mainframe can use other programming languages.  For example, CICS can also execute PL/I, Fortran, assembler, C/C++, Java, and a few others that I may not be aware of.

When executing Java, it does it like any other J2EE server.
What do you mean by "pcode?"

Just like on a PC some languages must be compiled into binary executable form before they can be executed.  Other languages are interperted at execution time.

COBOL is one of multiple languages that must be compiled into binary executable prior to being run.

Does that help?
Eduardo FuerteAuthor Commented:

If I well undesrtood Cobol (like several other languages) follow that steps:

Cobol/CICS code  =>
                      Compilation (that generates what I meant pCode)  =>
                                                                             Linkedition (that generates executable binary code)

Thath's right ?
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

Well there are a few different definitions for "pCode" out there.

The output from the compile step is the executable code, which is equivalent to an ".exe" file in the Window world.

      source code --> compile program --> ".exe"

The link edit step does not create the binary code, the compile step creates the binary code.  

The linkedit step takes the binary code and creates the program module.

What programming languages are you familiar with?
Eduardo FuerteAuthor Commented:

Well I've been using Visual FoxPro / PHP/ more recently....

But your example  has made me remember  Clipper 5.2 (DOS) - do you know ?

.PRG  =>  Compiled to pCode  => Then Linkedited with Libraries => .EXE

That's right ?

Eduardo FuerteConnect With a Mentor Author Commented:

Your reply is very clear.
But just one last doubt: CICS itself calls a Java (or Fortran) module ?

Thanks for the points.  Just as a F.Y.I., I read up on clipper and p-code at:

It seems that p-code is not really truly executable machine code.   From the description p-code sounds more like "compiled java" is really not comiplied code.  They both seem to be source code that is "translated" to a more compact form of code that still needs to be interperted by another program.  Compiled Java code, and from the sounds of p-code, is still machine/OS independent and can be copied to any machine any OS and still run.

True binary compiled code can only run on the machine and OS that it was compiled to run under.
The output from a Cobol compiler is machine and OS specific.
Eduardo FuerteAuthor Commented:
Very good. This difference is remarkable.  (Cliiper and Cobol uses pseudo code with another concept than Java)
I'm planning another question in Mainframe context.
Eduardo FuerteAuthor Commented:
Please disconsider my last interaction. After a better reading it's not necessary.

I'm planning to return here to obtain another topic details.

Thank very much.
--> But just one last doubt: CICS itself calls a Java (or Fortran) module ?

I missed this part  I'm not 100% sure what you mean, but:

CICS can execute Java or Fortran program, or a few other languages like C/C++ or PL/I.

So if you have a Fortran program, you compile it into a executable, define it as needed to CICS and CICS will be able to excute it.

If you have a Java program, you define it to CICS and CICS will execute it.  Well actually CICS will execute the JRE and the JRE executes the Java program.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.