Limits
This topic summarizes the implementation limits for the PL/I language elements, the macro facility language elements, and the supported code page values for UPPERCASE built-in function and LOWERCASE built-in function.
Table 1 summarizes the implementation limits for the PL/I language elements.
| Language element | Description | Limit |
|---|---|---|
| Arrays | Maximum number of dimensions for an array | 15 |
| Minimum lower boundNote 1 | Under CMPAT(V3), -263; otherwise, -2147483648 | |
| Maximum upper boundNote 1 | Under CMPAT(V3), +263 - 1; otherwise, +2147483647 | |
| Note 1: These bounds must be
used with caution. For instance, if
A has the maximum
upper bound and JX has the attributes SIGNED FIXED
BIN(31), the loop DO JX = LBOUND(A) TO HBOUND(A) will
"wrap" after it hits the last element in the array. It would not "wrap"
if UPTHRU were used instead of TO. |
||
| Structures | Maximum number of levels in a structure | 15 |
| Maximum level-number in a structure | 255 | |
| Arithmetic precisions | Maximum precision for FIXED DECIMAL | 31Note 2 |
| Maximum precision for FIXED BINARY | 63Note 3 | |
| Maximum precision for FLOAT DECIMAL | 33Note 4 | |
| Maximum precision for FLOAT BINARY | 109Note 5 | |
| Maximum scale factor for FIXED data | 127 | |
| Minimum scale factor for FIXED data | -128 | |
| Note 2: This is true only if you specify the
compile-time option LIMITS(FIXEDDEC(31)); the default is 15.
Note 3: This is true only if you specify
the compile-time option LIMITS(FIXEDBIN(63)); the default is 31.
Note 4: On Intel, the maximum FLOAT
DECIMAL precision is 18. Under FLOAT(DFP), the maximum FLOAT DECIMAL
precision is 34.
Note 5: On
Intel, the maximum FLOAT BINARY precision is 64.
|
||
| String and AREA variables or constants | Maximum length of CHARACTER | 32767 |
| Maximum length of BIT | 32767 | |
| Maximum length of GRAPHIC | 16383 | |
| Maximum length of WIDECHAR | 32767 | |
| Maximum size of AREA | 2147483647 | |
Note 6: These
are the default limits. Under the STRING suboption of the LIMITS compiler
option, the maximum length of the string types can be up to 128M.
|
||
| Built-in functions | Maximum number of arguments to the IAND, IOR, MAX, and MIN functions | 64 |
| Maximum values for the precision (p) in the ADD, BINARY, DECIMAL, DIVIDE, FIXED, FLOAT, MULTIPLY, PRECISION, and SUBTRACT functions | same as corresponding limit for arithmetic precision | |
| Maximum values for the scale (q) in the ADD, BINARY, DECIMAL, DIVIDE, FIXED, MULTIPLY, PRECISION, and SUBTRACT functions | same as corresponding limit for arithmetic precisions | |
| Maximum number of digits (N) in the CEIL, FLOOR, MAX, MIN, MOD, ROUND, and TRUNC functions | same as corresponding limit for arithmetic precisions | |
| Program size | Maximum length of an identifier | 100 |
| Maximum number of lexical units (keywords, identifiers, delimiters, etc) before a statement type can be resolved | 511 | |
| Maximum number of DEFAULT-statements in a block | 31 | |
| Maximum number of %PUSH statements | 63 | |
| Maximum number of %INCLUDE statements | 4095 | |
| Maximum nesting of %INCLUDE statements | 2046 | |
| Maximum number of lines in any source file | 1048575 | |
| Maximum number of statements | 16777215 | |
| Maximum number of LIKE-attributes in a block | 63 | |
| Maximum number of output expressions in a data-list | 60 | |
| Maximum number of repetitive DO-specifications in a data-list | 50 | |
| Maximum size of a data aggregate containing no unaligned bits | 2147483647 | |
| Maximum size of a data aggregate containing some unaligned bits | 268435455 | |
| Maximum number of arguments in a CALL or function reference | 255 | |
| Maximum number of parameters for a procedure | 4095 | |
| Maximum nesting of factored attributes | 15 | |
| Maximum nesting of BEGIN and PROCEDURE statements | 30 | |
| Maximum nesting of DO-groups | 49 | |
| Maximum nesting of IF statements | 49 | |
| Maximum nesting of SELECT-statements | 49 | |
| Maximum nesting of expressions | 383 | |
| Maximum length of %NOTE message | 32767 | |
| Miscellaneous | Maximum number of picture characters in a character picture | 511 |
| Maximum number of bytes in a numeric picture | 253 | |
| Maximum number of numeric picture characters in a numeric picture | 31 | |
| Maximum number of bytes in the external
representation of CHARACTER, X, BIT, BX, GRAPHIC, GX, WX and M string
constants. The external representation includes all quotes and string suffixes. For example, the string '01010110'B has 11 bytes in its external specification, but only 1 byte in its internal representation. Similarly, the string 'Ain''t Misbehavin''' has 21 bytes in its external specification, but only 17 in its internal representation. |
3072 | |
| Maximum length for a KEYTO character string | 120 | |
| Maximum length for a KEYTO graphic or widechar string | 60 | |
| Maximum KEY length | 32763 | |
| Maximum line size for LINESIZE | 32,759 for F-format or U-format, and 32,751 for V-format | |
| Minimum line size for LINESIZE | 1 | |
| Maximum page size for PAGESIZE | 32,767 | |
| Minimum page size for PAGESIZE compiler option | 1 | |
| Maximum size of DISPLAY character string | 126 | |
| Maximum DISPLAY reply message | 72 bytes | |
| Range of IEEE normalized floating-point numbers | +3.30E-4932 to +1.21E+4932, 0, -3.30E-4932 to -1.21E+4932 | |
| Range of hex floating-point numbers | +10E-78 to +10E75, 0, -10E-78 to +10E+75 | |
Table 2 summarizes the implementation limits for the macro facility language elements.
| Language element | Description | Limit |
|---|---|---|
| Arrays | Maximum number of dimensions | 15 |
| Minimum lower bound | -32768 | |
| Maximum upper bound | +32767 | |
| Arithmetic range | Min and max for a FIXED variable under FIXED(DECIMAL) option | same as FIXED DECIMAL(5) identifier |
| Min and max for a FIXED variable under FIXED(BINARY) option | same as FIXED BINARY(31) identifier | |
| Macro procedures | Maximum nesting level | 1 |
| Keys | Maximum number of keyword parameters | 4096 |
| String result | Maximum length | 512K |
Table 3 lists the values of lowerc and upperc for the supported values of c. c denotes the code page that will be uppercased or lowercased.
| Lower limits | Upper limits |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|