Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Language Reference Manual

Appendix. Limits

Table 65 summarizes the implementation limits for the PL/I language elements. Table 66 summarizes the implementation limits for the macro facility language elements.

Table 65. Language element limits
Language Element Description Limit
Arrays Maximum number of dimensions for an array 15
Minimum lower bound (Note 1) -2147483648
Maximum upper bound (Note 1) +2147483647
Note 1:
Under the compile-time option CMPAT(V1), the minimum lower bound is -32768 and the maximum upper bound is 32767. Also, these bounds should be used with caution. For instance, if A has the maximum upper bound and JX has the attributes SIGNED FIXED BIN(31), then 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 31 (Note 2)
Maximum precision for FIXED BINARY 63 (Note 3)
Maximum precision for FLOAT DECIMAL 33 (Note 4)
Maximum precision for FLOAT BINARY 109 (Note 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 16383
Maximum size of AREA 2147483647
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 procedures in a program 255
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 2047
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 66. Macro facility limits
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

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)