DocumentationEndless PL/I for OpenVMSUser Manual  ·  ESS-PFVUM-001

ESS-PFVUM-001  ·  User Manual  ·  July 2026

Endless PL/I for OpenVMS

This manual provides an overview of the PL/I programming language. It explains programming with Endless PL/I on OpenVMS VAX, OpenVMS Alpha, OpenVMS I64 and OpenVMS x86-64 Systems. It also describes the operation of the Endless PL/I compilers and the features of the operating systems that are important to the PL/I programmer.

This revised manual supersedes the PL/I User's Manual for VAX VMS, Order Number AA-H951D-TL.

Operating System and Version
OpenVMS VAX 5.5 or higher
OpenVMS Alpha 6.2 or higher
OpenVMS I64 8.3 or higher
OpenVMS x86-64 9.2 or higher
Software Version
Endless PL/I V3.9 for OpenVMS VAX
Endless PL/I V5.0 for OpenVMS Alpha
Endless PL/I V5.0 for OpenVMS I64
Endless PL/I V5.0 for OpenVMS x86-64

Download PDF

Table of Contents
Preface
1. Intended Audience
2. Associated Documents
3. Conventions
4. Terminological Conventions
1. Overview
2. Developing PL/I Programs at the DCL Command Level
2.1. DCL Commands for Program Development
2.2. Creating a PL/I Program
2.3. Compiling a PL/I Program
2.4. Linking a PL/I Program
2.5. Running a PL/I Program
3. Using the OpenVMS Debugger
3.1. Overview
3.2. Features of the Debugger
3.3. Getting Started with the Debugger
3.4. Sample Debugging Session
3.5. Debugger Command Summary
4. The File System
4.1. File Control
4.2. Using the OpenVMS File System for I/O
4.3. Error Handling
5. Stream Input/Output
6. Record Input/Output
6.1. File Organizations
6.2. Access Modes
6.3. Record Formats
6.4. Carriage Control
6.5. Sequential Files
6.6. Relative Files
6.7. Indexed Sequential Files
7. Options of the ENVIRONMENT Attribute
7.1. Specifying and Using ENVIRONMENT Options
7.2. Summary of ENVIRONMENT Options
7.3. ENVIRONMENT Options for File Protection and File Sharing
7.4. ENVIRONMENT Options for I/O Optimization
8. Input/Output Statement Options
8.1. Option Format
8.2. Summary of Input/Output Statement Options
9. File-Handling Built-In Subroutines
9.1. DISPLAY Built-In Subroutine
9.2. EXTEND Built-In Subroutine
9.3. FLUSH Built-In Subroutine
9.4. FREE Built-In Subroutine
9.5. NEXT_VOLUME Built-In Subroutine
9.6. RELEASE Built-In Subroutine
9.7. REWIND Built-In Subroutine
9.8. SPACEBLOCK Built-In Subroutine
10. Error Handling
10.1. RESIGNAL Built-In Subroutine
10.2. ON-Unit Actions
10.3. Relationship of OpenVMS Condition Handlers to PL/I ON-Units
10.4. Search Path for ON-Units
10.5. Scope of ON-Units
10.6. ON-Unit Examples
10.7. Condition-Handling Built-In Functions
11. Using PL/I in the Common Language Environment
11.1. OpenVMS Calling Standard
11.2. Parameter-Passing Mechanisms
11.3. OpenVMS Run-Time Library Routines
11.4. OpenVMS System Service Routines
11.5. OpenVMS Utility Routines
11.6. Calling Routines
11.7. Condition Values
11.8. Examples of Calling System Routines
12. Global Symbols
12.1. Using Global Symbols in PL/I Procedures
12.2. The READONLY and VALUE Attributes
12.3. Obtaining Definitions for System Global Symbols
13. Mailboxes
13.1. Using Mailboxes
13.2. Mailbox Input/Output
14. Accessing Files on a Network
14.1. Remote File Access
14.2. Task-to-Task Communication
15. Storage Allocation
15.1. Program Sections
15.2. Addressability
A. PL/I Messages
A.1. Compiler Messages
A.2. Run-Time Messages
A.3. %DICTIONARY Error Messages
B. Correspondence of PL/I and RMS
C. Optional Programming Productivity Tools
C.1. Using LSE with PL/I
C.2. Using SCA (Endless PL/I V3.9 for OpenVMS VAX only)
D. Rules for Conversion of Data
D.1. Assignments to Arithmetic Variables
D.2. Assignments to Bit-String Variables
D.3. Assignments to Character-String Variables
D.4. Assignments to Pictured Variables
D.5. Conversions Between Offsets and Pointers
E. The Common Data Dictionary
E.1. PL/I and CDDL Data Types
E.2. Creating CDD Structure Declarations
E.3. Using the CDD
Index