9.3. Required Limits

These are the implementation minimums defined by REXX:

[Binary strings]
     Must be able to hold at least 50 characters after packing.
     That means that the unpacked size might be at least 400
     characters, plus embedded white space.

[Elapse time clock]
     Must be able to run for at least 10**10-1 seconds, which is
     approximately 31.6 years. In general, this is really a big
     overkill, since virtually no program will run for a such a
     period. Actually, few computers will be operational for such
     a period.

[Hexadecimal strings]
     Must be able to hold at least 50 characters after packing.
     This means that the unpacked size might be at least 100
     characters, plus embedded white space.

[Literal strings]
     Must be able to hold at least 100 characters. Note that a
     double occurrence of the quote character (the same character
     used to delimit the string) in a literal string counts as a
     single character. In particular, it does not count as two,
     nor does it start a new string.

[Nesting of comments]
     Must be possible to in at least 10 levels. What happens then
     is not really defined. Maybe one of the syntax errors is
     issued, but none is obvious for this use. Another, more
     dangerous way of handling this situation would be to ignore
     new start-of-comments designators when on level 10. This
     could, under certain circumstances, lead to running of code
     that is actually commented out. However, most interpreter are
     likely to support nesting of comments to an arbitrary level.

[The Number of Parameters]
     In calls must be supported up to at least 10 parameters. Most
     implementations support somewhat more than that, but quite a
     few enforce some sort of upper limit. For the built-in
     function, this may be a problem only for MIN() and MAX().

[Significant digits]
     Must be supported to at least 9 decimal digits. Also, if an
     implementation supports floating point numbers, it should
     allow exponents up to 9 decimal digits. An implementation is
     allowed to operate with different limits for the number of
     significant digits and the numbers of digits in exponents.

[Subroutine levels]
     May be nested to a total of 100 levels, which counts both
     internal and external functions, but probably not built-in
     functions. You may actually trip in this limit if you are
     using recursive solution for large problems. Also, some tail-
     recursive approaches may crash in this limit.

[Symbol (name) length]
     Can be at least 50 characters. This is the name of the
     symbol, not the length of the value if it names a variable.
     Nor is it the name of the variable after tail substitution.
     In other words, it is the symbol as it occurs in the source
     code. Note that this applies not only to simple symbols, but
     also compound symbols and constant symbols. Consequently, you
     can not write numbers of more than 50 digits in the source
     code, even if NUMERIC DIGITS is set high.

[Variable name length]
     Of at least 50 characters. This is the name of a variable
     (which may or may not be set) after tail substitution.




PREV NEXT