Audience: developers and technical decision-makers checking which PL/I data types and storage attributes a Heirloom-migrated application supports.
Overview
This is a quick reference to the PL/I data types and storage attributes the runtime supports, with a one-line note on each. Each type keeps its mainframe byte representation, so record layouts are preserved byte-for-byte (see How the PL/I Runtime Manages Memory for the byte-level detail).
Note: This is a summary of the commonly used types, not an exhaustive attribute-by-attribute specification. If you need confirmation that a specific type, precision, or attribute your application relies on is covered, contact Heirloom support with the detail.
Arithmetic types
Type
Notes
FIXED BINARY(p[,q])
Signed binary integer/fixed-point; stored in 2, 4, or 8 bytes by precision, with arbitrary precision beyond 64 bits
FIXED DECIMAL(p[,s])
Packed decimal (BCD), two digits per byte with a sign nibble — the classic COMP-3 layout
Numeric & character editing
Type
Notes
PICTURE
Numeric pictures (9, Z, V, S, CR, DB, currency, insertion) and character pictures (X, A), in display/zoned form
String types
Type
Notes
CHARACTER(n)
Fixed-length character string, space-padded to n
CHARACTER(n) VARYING
Variable-length character string
BIT(n)
Bit string of n bits
Address & locator types
Type
Notes
POINTER
Locator for BASED storage (ADDR, pointer assignment)
OFFSET
Locator relative to an AREA
ENTRY
Entry (procedure) reference
Aggregates
Type
Notes
Structures (DCL 1 … 2 … 3 …)
Multi-level records with nested members
Arrays
One- and multi-dimensional, with bounds; arrays of scalars or of structures
Other
Type
Notes
COMPLEX
Numbers with real and imaginary parts
AREA
A block of storage for BASED/OFFSET allocation (ALLOCATE/FREE)
Storage attributes
Attribute
Notes
BASED
The variable overlays storage addressed by a pointer (target can change)
DEFINED
The variable overlays another variable at a fixed position
DERIVED
A field derived from another field
LIKE
Reuse the structure/member layout of another declaration
INITIAL
Initial values for variables
Summary
Supported types span arithmetic (FIXED BINARY, FIXED DECIMAL/packed), PICTURE editing, strings (CHARACTER fixed & VARYING, BIT), locators (POINTER, OFFSET, ENTRY), aggregates (structures and multi-dimensional arrays), and COMPLEX / AREA — together with the BASED / DEFINED / DERIVED / LIKE / INITIAL storage attributes. Each keeps its original byte representation. This list is a summary; contact support to confirm a specific type or attribute.
0 Comments