Welcome to the IBM Rational PL/I community. Here you will find the latest technical and business information, and educational information about PL/I and related z/OS and AIX topics including IMS, CICS, and Rational Developer for System z.
IBM has been quietly delivering a new release of the PL/I compiler every year since 1999 on System z. The recent announcement of Enterprise PL/I for z/OS continues to show IBM’s commitment to delivering a world class PL/I compiler on System z.
Enterprise PL/I for z/OS V4.5 is enhanced to fully exploit the new z13 architecture. It uses the new Vector Facility to improve the performance of the code generated for the verify and search built-in functions and expands the use of the Decimal Floating Point Facility for fixed decimal... [More]
The PL/I workstation compiler supports the following interfaces to other products:
1. Using the sort program
The compiler provides an interface called PLISRTx (x = A, B, C, or D) that allows you to make use of the IBM-supplied Sort programs. To use the Sort program you must include the correct PL/I statements in your source program and specify the correct data sets in your JCL.
2. Interlanguage Communication between PL/I and C
The Interlanguage Communication (ILC) between PL/I and C is supported. You can write PL/I code... [More]
Check out all the information about the latest release of Enterprise PL/I for z/OS. You can get a summary of the release as well as all the announcement details.
See what's new with Enterprise PL/I for z/OS, V4.4 including enhancements to leverage the latest z/OS. For all the details about the Enterprise PL/I for z/OS, V4.4 announcement, see here .
ALLOCATE is a storage control built-in function, which allocates storage of the specified size in the heap. You can also use ALLOCATE to allocate the specified size in the specified area.
When you specify ALLOCATE (n) , ALLOCATE allocates storage of size n in heap storage and returns the pointer to the allocated storage. If necessary, n is converted to REAL FIXED BINARY (31,0) . If the requested amount of storage is not available, the STORAGE condition is raised.
The ALLOCATE built-in function now has the AREA... [More]
Are you looking for PL/I documentation across different releases? Do you want to access PL/I documentation of both the HTML and PDF format?
The PL/I library pages now provide the following types of PL/I documentation in one central location:
HTML documentation URL
Start visiting the following PL/I library pages:
Enterprise PL/I documentation library
PL/I for AIX documentation library
Code that uses elements of structures with multiple REFERs can be very expensive : each reference uses one or more
costly library call to remap the structure. Many PL/I users have long known that the of multiple REFERs created a
black hole for performance.
Now, with Enterprise for z/OS 4.1, for structures where all the elements are byte-aligned, those calls will be avoided and
straightforward inline code generated (because if all elements are byte-aligned, no padding is possible and thus the
address calculations are... [More]
In PL/I conversions, BINARY rules over DECIMAL, and FLOAT, over FIXED.
This means, for example, that when an expression contains a BINARY and a DECIMAL operand, then
the result will be BINARY.
Hence, for the assignment in this code
dcl a fixed bin;
dcl b float dec;
b = b + a ;
there will be these conversions
a will be converted to FLOAT BIN
b will be converted... [More]
If you use the TEST option and DebugTool, Enterprise PL/I will show you the source as you coded it.
So, for example, if you have code that contains an EXEC SQL statement, you will see in the
debugger just that EXEC SQL statement as you coded it and not the many, many statements generated by the
preprocessor and visible in the listing. This is a big plus since those generated
statements will be largely meaningless to you and would certainly not be ones
you should be debugging and fixing.
Enterprise PL/I has always supported "named constants", i.e. scalars declared with the VALUE attribute, which make your
code more maintainable than using the constants as is, but which also allow the compiler to produce much better code
than scalars declared with the INITIAL attribute.
With Enterprise 4.1 (actually even with 3.9 although it was not documented then), you can now declare named constants in
structures (as long as all the leaf elements of such a structure have the VALUE attribute and as long... [More]
Enterprise PL/I for z/OS has consistently delivered innovations to help developers maintain and create applications optimized for deployment on IBM System z servers. Like COBOL, PL/I also focuses on delivering new features to improve performance, productivity, and modernization of proven, business critical applications. IBM has delivered a new release of the PL/I compiler every year since 1999 on System z. The announcement of Enterprise PL/I for z/OS V4.4 has kept this streak alive and reaffirms IBM's commitment to PL/I... [More]
For many years, the only floating point representation on z/OS was hexadecimal float. This is a base 16 representation, but most of us have 10 fingers and most business applications want to perform decimal calculations.
The difference between these 2 bases leads to problems as exemplified by this code:
dcl f1 float dec(6);
dcl f2 fixed dec(5,3);
dcl f3 float dec(6);
f1 = 4;
f2 = f1 / 100e0;
put skip data( f2 );
One of the new options introduced in the new 4.2 release of Enterprise PL/I
is the UNROL L option. However, to understand it, you first need to understand
what the compiler does with loops.
Usually, the compiler turns a DO loop into a sequence of instructions which is
followed by a test and then a conditional branch back to repeat those instructions
with some updated values (and the sequence of instructions may be preceded by a
conditional test to see if the loop should be run at all).
Peter Elderon from the IBM compiler development team will be presenting on what's new in Enterprise PL/I for z/OS at SHARE in Anaheim, March 9 to 14.
15284: PL/I - What's New
Register for SHARE in Anaheim today!
Today, IBM announced Enterprise PL/I for z/OS V4.4 and z/OS XL C/C++ 2.1.
At SHARE in Boston , being held August 11-16, Visda Vokshoori , from the IBM compiler development team, will present the following sessions about these latest PL/I and C/C++ compilers for z/OS.
Session 13789: What's New in Enterprise PL/I and C/C++ will discuss all of the new features of the new compiler versions.
Enterprise PL/I for z/OS 4.4 features discussed will include:
Improved performance of PL/I applications
PL/I has complex rules for how structures are mapped and for when padding is inserted.
However, it can be important to know when there is padding in a structure (for example,
if you pass that structure to a program compiled by a language, such as C or COBOL,
that may map the structure differently).
With Enterprise PL/I 4.1, if you specify the new NOPADDING suboption to the compiler's
RULES option, the compiler will issue an E-level message for any structure that contains
RULES(NOPADDING) is... [More]