The Compiler generates warnings or errors if your source program exceeds certain Open PL/I Compiler implementation limits. The following table lists these implementation limits.
Value | Limit |
---|---|
Depth of nesting of a structure | 16 |
Maximum length of an ‘external’ string constant | 30721 |
Maximum length of an ‘internal ’ string constant | 327672 |
Maximum length of a string constant with repeat specifier | 32767 |
Maximum length of source line | 1024 |
Maximum length of an identifier | 100 |
Maximum size of storage for AREA data | 2GB3 |
Maximum size of a single data structure | 2GB4 |
Maximum stack storage allocated for automatic variables (per procedure) | 2GB |
Maximum storage allocated for static variables (per compilation unit) | 2 GB |
Maximum storage allocated for uninitialized static variables with -bss option | 2 GB5 |
Array dimensions | 8 |
Nesting level of INCLUDE statements | 7 |
Nesting of DO, PROCEDURE, BEGIN, SELECT, and simple ON-unit statements | 646 |
Number of arguments in a subroutine or function call | 239 |
Number of data and format list pairs in an edit-directed specification | 256 |
Number of diagnostics | 10007 |
Maximum VSAM key size | 120 bytes |
Scale factor of variables | 0 ≤ scale factor ≤ 128 |
Scale factor of a constant | 0 ≤ scale factor ≤ 127 |
Scale factor of a conversion built-in function | 0 ≤ scale factor ≤ 127 |
Maximum value of a FORMAT repeat field | 2GB |
Maximum value of a FORMAT width field | 32767 |
Maximum for a FORMAT E or FORMAT F digit field | 127 |
Maximum value of a FORMAT F scaling factor | +/- 127 |
Precision for a fixed binary number | 31 |
Precision for a fixed decimal number (maximum) | 63 |
Precision for a float binary number | 52 |
Precision for a float decimal number | 16 |
Internal Limits | |
Number of tokens in a statement | 20,000 |
1The spelling of an external string constant (as presented in the user program) is limited to 3072 characters, where the spelling
includes the surrounding quotation marks, the extra quotation mark when two single quotation marks represent a single quotation
mark inside the string, and the possible combination of postfix characters such as B or X.
2The internal spelling of a character string constant (i.e., a compiler generated string constant as the result of Restricted Expression Evaluation) of is limited to 32767 characters, where the spelling includes the surrounding quotation marks. 3Very large area sizes might be impacted by system resources. 4Unlimited with -largedata 5Unlimited with -largedata, Linux only 664 including the top level procedure. 7See the -maxmsg topic for information on configuring this limit. |