Skip to main content

Features and benefits

IBM PL/I for VSE/ESA™ (PL/I VSE) enables you to integrate your PL/I applications into IBM Language Environment for VSE/ESA (LE/VSE).

PL/I also provides you with access to LE/VSE's rich set of library routines and enhanced interlanguage communication (ILC) with IBM COBOL for VSE/ESA (COBOL/VSE) and IBM C for VSE/ESA (C/VSE).

PL/I VSE (program number 5686-069) brings to VSE the functions of IBM PL/I MVS™ & VM (PL/I MVS & VM) while retaining close source compatibility with the DOS PL/I Optimizing Compiler (DOS PL/I).

PL/I is a programming language for scientific, engineering, commercial, and systems programming tasks. PL/I includes the best features of FORTRAN, COBOL, and ALGOL, with powerful structured programming constructs and many more features that other languages have only recently implemented or considered.

PL/I cross-platform portability

PL/I is available on the following IBM platforms:

PL/I VSE's relationship to LE/VSE
The OS/390, MVS, VM, and VSE implementations of PL/I share a common run-time environment, Language Environment.

Language Environment consists of common conventions, run-time facilities, and callable services that provide a consistent application development environment.

In a single VSE application you can include modules created by any LE/VSE-conforming language (PL/I VSE, COBOL/VSE, and C/VSE).

How you can benefit from PL/I VSE

PL/I benefits include:

Other PL/I language features include a wide variety of:

Virtual Storage Constraint Relief (VSCR)
Although the PL/I VSE compiler runs below the 16-megabyte line, PL/I VSE applications created by the compiler can use VSE/ESA extended architecture 31-bit addressing. This allows you to take advantage of address space above the 16-megabyte line. Thus, you can construct large applications that use extensive tables of data without resorting to techniques like segmentation to fit large programs into the available address space.

With VSCR:

Improve programmer productivity

PL/I built-in functions and subroutines include:

Program interrupts or conditions that occur at run time can be detected by the hardware, the operating system, other software, or PL/I itself. Using the facilities available with PL/I, you can write applications that provide non-stop operation by handling these conditions.

In addition to condition handling, PL/I provides diagnostic facilities to prevent programming errors. For many of these errors, the running application can detect the problem, take corrective action, and continue execution. Problems that cause your programs to produce inaccurate results include, for example:

Some of the new features of this release of PL/I are:

The default symbols for these operators are troublesome because upload and download programs often do not translate them correctly. Therefore, your ability to specify alternate symbols helps to make your source code more portable.

Enhanced interlanguage communication with COBOL/VSE and C/VSE
Your PL/I VSE applications can communicate with applications created by the COBOL/VSE and C/VSE compilers.

Using LE/VSE, your PL/I VSE applications can fetch COBOL/VSE or C/VSE routines; and COBOL/VSE or C/VSE applications can dynamically call PL/I VSE routines.

PL/I VSE now supports reentrant ILC applications.

ILC between PL/I VSE and COBOL/VSE or C/VSE is also supported under CICS/VSE.

Use powerful input and output facilities
PL/I's input and output facilities provide a high degree of application portability. These facilities also allow you to take advantage of data files, access methods, and other devices that the operating system provides.

PL/I handles most ordinary operations, such as file opening and closing. Programs can control input and output operations (such as checking on file status) as well as intercept various exceptional conditions to take corrective action. Such conditions include:

PL/I supports two types of data transmission. Record-oriented input and output transmits data aggregates, or records, one at a time without performing any data conversions. Stream-oriented input and output transmits one data item at a time in a continuous stream of characters. Data is converted during transmission - external data is in character format, and internal data is represented in any of the computational data types supported by PL/I.

Make your source programs device independent

PL/I VSE builds DTFs dynamically at run time. This means that you can define input and output device types in run-time JCL, making your source programs device independent.

Compatibility with DOS PL/I and PL/I MVS & VM

PL/I VSE provides source program compatibility with DOS PL/I and PL/I MVS & VM for most PL/I language elements.

Where there are differences between DOS PL/I and PL/I MVS & VM, PL/I VSE retains close compatibility with DOS PL/I.

PL/I VSE does not provide object compatibility with either DOS PL/I or PL/I MVS & VM. To use the functions of PL/I VSE, application programs must be recompiled with the new compiler and link-edited with the LE/VSE run-time library.

There may be some significant migration issues, so it is important to review the updated PL/I VSE Migration Guide SC26-8056-01 for additional information.

Installing and customizing PL/I VSE

You can install and customize PL/I VSE by following the instructions in PL/I VSE Installation and Customization Guide. Note that if you have not already installed LE/VSE, you need to do so before installing PL/I VSE.

How to learn more

If you'd like to learn more about PL/I and related products, contact your local IBM office. We look forward to hearing from you.

We're here to help

live-assistance

Easy ways to get the answers you need.


Or call us at:
877-426-3774
Priority code:
104CBW61