DocumentationEndless PL/I for POSIX SystemsReference Manual  ·  ESS-PFURM-001

Appendix B

Dialect Differences

This appendix describes the differences between the various Endless PL/I for POSIX Systems dialects. The dialects are specified on the command line, using the -D dialect option. Legal dialects are dec (the default), ibm, and ansi. (For details on specifying command line options, see the Endless PL/I for POSIX Systems User's Manual.)

This manual and the Endless PL/I for POSIX Systems User's Manual contain detailed information on each of the dialect-specific features in the following summary. This appendix provides a concise listing of all the features, and provides references to the chapter or manual containing more information.

B.1. Data Declarations

When you declare data without specifying all the attributes, Endless PL/I for POSIX Systems applies default values. These values differ depending on the dialect you specify. Default values are listed in Chapter 2, Declarations, in the sections describing the specific attributes.

B.2. Data Types

Label data can have a subscript. If you specify the ibm dialect, this subscript can have multiple dimensions, up to a maximum of seven. See Chapter 3, Data Types for an example of multiply dimensioned label array constants.

B.3. Condition Handling

Chapter 1, Program Structure and Content and Chapter 8, Program Control contains details on format and usage of condition prefixes. Chapter 8, Program Control contains descriptions of the specific ON conditions.

B.3.1. Condition Prefixes

Condition prefixes are supported for the ibm dialect only.

B.3.2. ON Conditions

The following conditions are supported only in the ibm dialect of Endless PL/I for POSIX Systems:

ATTENTION, CHECK, NAME, RECORD, SIZE, STRINGSIZE, TRANSMIT

B.3.3. Return Values for Condition Signals

IBM and Digital implementations of PL/I return different values when certain conditions are signalled. Endless PL/I for POSIX Systems returns the values appropriate for the specified dialect. The ansi dialect returns the same values as the dec dialect.

B.4. Sort Support

The ibm dialect of Endless PL/I for POSIX Systems provides the IBM sort subroutines, PLISRTA, PLISRTB, PLISRTC and PLISRTD, with PLIRETC and the PLIRETV built-in function for the return codes of input and output routines. The sorting is done by the system's sort command, so no separately licensed sort product is needed.

B.5. Record and Stream I/O

The ibm dialect of Endless PL/I for POSIX Systems supplies several record I/O (file handling) features to enhance compatibility. The following features are supported in the ibm dialect only:

  • The LOCATE statement

  • The BUFFERED and UNBUFFERED file attributes

  • The IGNORE option of the READ statement

See Chapter 9, Input and Output and the Endless PL/I for POSIX Systems User's Manual for more information on these features.

Many other I/O keywords are either accepted but ignored or are recognized for purposes of giving an appropriate error message. These are listed in Appendix D, Migration Notes.

The dec and ibm dialects support different ENVIRONMENT options and use them differently in statements; the ibm dialect allows them only in the file declaration. These differences are noted in Chapter 9, Input and Output and the Endless PL/I for POSIX Systems User's Manual. The ansi dialect provides the same support as the dec dialect.

The file symbol "SYSOUT" is supported in the dec and ansi dialects; the file symbols "SYSPRINT" and "SYSIN" are supported in dec, ansi, and ibm dialects.

The OPTIONS keyword is supported on record and stream I/O statements in the ansi and dec dialects.

B.6. Built-in Functions

The following built-in functions are available in only the dec and ansi dialects:

BYTE, BYTESIZE, COPY, DATETIME, DECODE, ENCODE, ERROR, EVERY, INFORM, INT, MAXLENGTH, POSINT, RANK, REVERSE, SEARCH, SIZE, SOME, SUBTRACT, TRIM, VARIANT, WARN

The following built-in functions are available in the ibm dialect only:

ALL, ANY, COUNT, CURRENTSTORAGE, ERF, ERFC, ONLOC, PLIRETV, PRECISION, REPEAT, STORAGE

All other built-in functions are available in all dialects.

B.7. Built-in Subroutines

The FLUSH, RESIGNAL and REWIND subroutines are available in the dec and ansi dialects.

The PLIRETC, PLISRTA, PLISRTB, PLISRTC and PLISRTD subroutines are available in the ibm dialect.