DocumentationEndless PL/I for OpenVMSReference Manual  ·  ESS-PFVRM-001

ESS-PFVRM-001  ·  Reference Manual  ·  July 2026

Endless PL/I for OpenVMS

This manual defines Endless PL/I for OpenVMS VAX, Alpha, I64 and x86-64. It includes the keywords and the semantic and syntax rules of PL/I programming language statements, attributes, built-in functions, and other language elements.

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. Technical Assumptions
5. Terminological Conventions
1. Program Structure and Content
1.1. Lexical Elements
1.2. Statements
1.3. Program Format
1.4. Blocks
1.5. Data and Variables
2. Declarations
2.1. DECLARE Statement
2.2. Attributes
3. Data Types
3.1. Summary of Data Types
3.2. Arithmetic Data
3.3. Character-String Data
3.4. Bit-String Data
3.5. Pointer Data
3.6. Offset Data
3.7. Label Data
3.8. Entry Data
3.9. File Data
3.10. Area Data
3.11. Condition Data
4. Aggregates
4.1. Arrays
4.2. Structures
4.3. Arrays of Structures
4.4. Internal Representation of Aggregate Data
5. Storage Classes
5.1. Automatic Variables
5.2. Static Variables
5.3. Internal Variables
5.4. External Variables
5.5. Based Variables
5.6. Controlled Variables
5.7. Dynamically Allocated Variables
5.8. Defined Variables
5.9. Storage Sharing
6. Expressions and Data Type Conversions
6.1. Assignment Statement
6.2. Operators and Operands
6.3. Precedence of Operators and Expression Evaluation
6.4. Data Type Conversion of Operands and Expressions
7. Procedures
7.1. PROCEDURE Statement
7.2. Functions and Function References
7.3. ENTRY Statement
7.4. CALL Statement
7.5. Parameters and Arguments
7.6. Calling External and Internal Procedures
7.7. Terminating Procedures
7.8. Passing Arguments to Non-PL/I Procedures
8. Program Control
8.1. DO Groups and Statements
8.2. BEGIN Statement
8.3. END Statement
8.4. IF Statement
8.5. SELECT Statement
8.6. GOTO Statement
8.7. LEAVE Statement
8.8. STOP Statement
8.9. Null Statement
8.10. Condition Handling
9. Input and Output
9.1. Opening and Closing Files
9.2. Stream I/O
9.3. Record I/O
10. Preprocessor
10.1. Preprocessor Compilation Control
10.2. Preprocessor Statements
10.3. User-Generated Diagnostic Messages
10.4. Preprocessor Built-In Functions
11. Built-In Functions, Subroutines, and Pseudovariables
11.1. Built-In Function Arguments
11.2. Conditions Signaled
11.3. Summary of Built-In Functions
11.4. Descriptions of Built-In Functions
11.5. Built-In Subroutines
11.6. Pseudovariables
A. Alphabetic Summary of Keywords
B. Digital Multinational Character Set
C. Compatibility with PL/I Standards
C.1. Differences and Similarities Between Endless PL/I for OpenVMS VAX and other platforms
C.2. Relation to the 1981 PL/I General-Purpose Subset
C.3. 198x PL/I General-Purpose Subset Features Supported
C.4. Full PL/I Features Supported
C.5. Nonstandard Features from Other Implementations
C.6. PL/I-Specific Extensions for OpenVMS VAX and OpenVMS Alpha Platforms
C.7. Implementation-Defined Values and Features
D. Migration Notes
D.1. Keywords Not Supported
D.2. Differences Between Endless PL/I V3.9 for OpenVMS VAX and Endless PL/I V5.0 for OpenVMS Alpha
D.3. Implicit Conversions
D.4. Printing a Hexadecimal Memory Dump
E. Language Summary
E.1. Statements
E.2. Attributes
E.3. Expressions and Data Conversions
E.4. Pseudovariables
E.5. Built-In Subroutines
Index