PL/I Language Processor Command Descriptions and Syntax


This section describes the PL/I language processor commands and their parameters and values.


CONDDDIO (CONDD)

The CONDDDIO command specifies that the source listing will be written to the source listing file unless the compiler return code exceeds x. The default is 4. Permissible values are 0-8.

Warning

Unpredictable results may occur when the CONDDDIO parameter is set to 8.

The following diagram illustrates the syntax for the CONDDDIO command:

+--- CONDDDIO Command -------------------------------------------------------+
¦  ¦
¦ +-4-+  ¦
¦ >>--CONDDdio(+---+)--><  ¦
¦ +-x-+  ¦
+----------------------------------------------------------------------------+

CONDSTEP (CONDS)

The CONDSTEP command controls the condition code set by the postprocessor when it is invoked by the preprocessor. The CONDSTEP parameter is ignored when the postprocessor is invoked as a separate job step after the compile. The postprocessor return code is always used.

 The CONDSTEP command can be used only with the preprocessor.

The following diagram illustrates the syntax for the CONDSTEP command:

+--- CONDSTEP Command -------------------------------------------------------+
¦  ¦
¦ +-HIghest--+  ¦
¦ >>--CONDStep(+----------+)--><  ¦
¦ +-COmpiler-+  ¦
+----------------------------------------------------------------------------+

 HIGHEST (HI):

(Default) The condition code will be set to the value of the PL/I language processor return code or the compiler return code, whichever is higher.

COMPILER (CO)

The condition code will always be set to the compiler return code. This option is typically used to allow a subsequent link-edit step to execute when the compile executes normally, but the postprocessor is unable to execute successfully.

DDIO

The DDIO command identifies the information from the PL/I compiler listing that will be written to the DDIO file. The parameter for the DDIO command is OUTPUT. The following diagram illustrates the syntax for the DDIO command OUTPUT parameter.

+--- DDIO Command -----------------------------------------------------------+
¦  ¦
¦ +-NOCOmpress-+ +-XRef---+ +-DMap---+ +-List---+  ¦
¦ >>--DDio(OUtput(+------------+-,-+--------+-,-+--------+-,-+--------+,-->  ¦
¦ +-COmpress---+ +-NOXRef-+ +-NODMap-+ +-NOLIst-+  ¦
¦  ¦
¦ +-OFfset---+ +-VARREF---+  ¦
¦ >--+----------+-,-+----------+))--><  ¦
¦ +-NOOFfset-+ +-NOVARREF-+  ¦
+----------------------------------------------------------------------------+

OUTPUT (OU):

Specifies the options for a report file or source listing file that will be written to the DDIO file.

NOCOMPRESS (NOCO): 

(Default) Does not compress the compiler listing. The size of the LP source members will not be reduced.

COMPRESS (CO): 

Enables compression. Depending on your program size and the options you have set, the size of language processor source members may be reduced.

Tip

There are performance implications when compression is used. More CPU and memory is required for compression/decompression of the compiler listing. This is especially important for online usage.

XREF (XR): (Default)

Writes the XREF sections of the listing.

NOXREF (NOXR): 

Does not write the XREF sections of the listing.

DMAP (DM): 

(Default) Writes the DMAP section of the listing.

NODMAP (NODM): 

Does not write the DMAP section of the listing.

LIST (LI): 

(Default) Writes the Assembler section of the listing.

NOLIST (NOLI): 

Does not write the Assembler section of the listing.

OFFSET (OF): 

(Default) Writes the OFFSET section of the listing.

NOOFFSET (NOOF): 

Does not write the OFFSET section of the listing.

VARREF: 

(Default) Records information in the DDIO file showing where every variable is referenced. This parameter is required and is forced on. Therefore, it cannot be inactivated.

NOVARREF:

This parameter does not cause an error message, but it cannot be set. See VARREF above.

 ESS

The ESS, Embedded Source Support, command controls whether the source listing is embedded in the program object or not. ESS has two options (YES and NO). For more information, see Embedded-Source-Support-listing.

image2022-12-30_16-11-5.png


NO:
NO is the default. NO specifies the source listing to not be embedded in the program object. Always specify for the following:

 IBM Enterprise COBOL lower than version  z/OS V5.0.

 IBM Enterprise PL/I for z/OS lower than version V4.5.

YES:
YES specifies the source listing to be embedded in the program object.

Available for:

  • IBM Enterprise COBOL for z/OS V5.x or higher.
  • IBM Enterprise PL/I for z/OS V4.5 and higher.

For PL/I only, the compiler options GOFF and OBJECT must also be specified in order for ESS(YES) to work.

File-Overrides Commands

The File-overrides commands override the default file definitions. The following overrides are available:

  • WRK0 - WRK4
  • PRTI
  • PRTO
  • ERRM
  • LOAD
  • DECK

The LOAD or DECK ddname is used by the PL/I language processor depending on the options selected for the compile step. If both LOAD and DECK are specified, both will be processed by the PL/I language processor. If you are using a temporary data set for your object, and only one option (LOAD or DECK) is specified, eliminate the ddname that corresponds to the option that is NOT specified. For example, if you specify LOAD, then eliminate the DECK ddname.

 The File-overrides commands can be used only with the postprocessor.

WRK0 - WRK4 File-Overrides Command

Specifies the work files

+--- WRK0-WRK4 File-overrides Command ---------------------------------------+
¦ ¦
¦ (1) ¦
¦ >>-WRKn--(+--------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+ ¦
+----------------------------------------------------------------------------+

Tip

In this diagram WRKn represents WRK0 - WRK4.

If you omit DD(ddname), the assumed ddname will be CWPWRKn.

PRTI File-Overrides Command

Specifies the compiler listing input

+--- PRTI File-overrides Command --------------------------------------------------+
¦    ¦
¦ >>--PRTI(+----------------------------------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers),LRECL(lrecl),RECFM(recfm)-+    ¦
+----------------------------------------------------------------------------------+

If you omit DD(ddname), the assumed ddname will be CWPPRTI.

PRTO File-Overrides Command

Specifies PL/I language processor output.

+--- PRT0 File-overrides Command --------------------------------------------+
¦  ¦
¦ >>--PRT0(+---------------------------------------------------+)--><  ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers),LRECL(lrecl)-+  ¦
+----------------------------------------------------------------------------+

 If you omit DD(ddname), the assumed ddname will be CWPPRTO.

 ERRM File-Overrides Command

 Prints the PL/I language processor error messages. 

+--- ERRM File-overrides Command --------------------------------------------+
¦  ¦
¦ >>--ERRM(+--------------------------------------+)--><                     ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+                                   ¦
+----------------------------------------------------------------------------+

 If you omit DD(ddname), the assumed ddname will be CWPERRM.

LOAD File-Overrides Command

Specifies the object library (indicated by the LOAD option of the compiler). 

+--- LOAD File-overrides Command --------------------------------------------+
¦  ¦
¦ >>--LOAD(+--------------------------------------+)--><  ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+  ¦
+----------------------------------------------------------------------------+

 If you omit DD(ddname), the assumed ddname will be CWPLOAD.

 DECK File-Overrides Command

 Specifies the object library (indicated by the DECK option of the compiler).

+--- DECK File-overrides Command --------------------------------------------+
¦  ¦
¦ >>--DECK(+--------------------------------------+)--><  ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+  ¦
+----------------------------------------------------------------------------+

 If you omit DD(ddname), the assumed ddname will be CWPDECK.

Optional Override Values

The keywords here cause the language processor to override its default values:

DDNAME (DD):

Specify a ddname instead of accepting the default ddname.

BLKSIZE (BLK):

Specify a decimal blocksize instead of accepting the default blocksize.

BUFFERS (BUF):

Specify a decimal number as the number of buffers instead of accepting the default number of buffers, which is 2. Only the first two buffers are used for buffering input/output. Extra buffers are used as in-core work space for the file. Therefore, records placed in the work space will never be written to the work files. If the storage is available, use this parameter with the BLKSIZE parameter to increase the language processor speed.

If the language processor is running in the MVS/XA or MVS/ESA environment and is above the 16 MB line, a value of zero specifies that as much storage as is available will be used. Using zero places a greater amount of overhead on startup and should not be used for small programs.

LRECL (LR):

Specify a decimal number as the logical record length instead of accepting the default logical record size.

RECFM (RE):

Specify a record format instead of accepting the default record format. Valid formats include:

F

Fixed

FA

Fixed ASA

FM

Fixed Machine

V

Variable

VA

Variable ASA

VM

Variable Machine

INCLUDE (IN)

Use the INCLUDE command to include a library or sequential file member that contains another set of language processor options to be processed.

An included set of options can, in turn, include another set of options. If a recursive chain of INCLUDEs is encountered, the language processor will stop with an error message.

Duplicate or conflicting parameters are resolved as follows:

  • Options are processed left to right.
  • When an INCLUDE is encountered, the included member is processed immediately. Options following the INCLUDE will be processed after the included member is processed.
  • The last option processed takes precedence.
  • The sources of options are, in order of descending priority:
    • forced options in the PL/I language compiler installation default module
    • CBL options in the source file (or equivalent for other compilers)
    • PARM options on the EXEC card
    • options specified in the CWPPRMO data set
    • default options in the PL/I language compiler installation default module.

 The INCLUDE command can be used only with the preprocessor.

The following diagram illustrates the syntax for the INCLUDE command:

+--- INCLUDE Command --------------------------------------------------------+
¦  ¦
¦ +-CWPPRMO-+  ¦
¦ >>--INclude(+---------+-,-+--------+)--><  ¦
¦ +-ddname--+ +-member-+  ¦
+----------------------------------------------------------------------------+

 ddname:

The DDNAME of the JCL statement that specifies the data set name. If a member is not specified, then the ddname must point to a sequential file or library member.

member

The library member name. If the ddname is not specified, then the default CWPPRMO will be used and a comma must precede the member name.

LANGPARM (LANGP)

The LANGPARM command specifies parameters to be passed to the compiler invoked by the language processor. If the language processor is run as a separate job step, this option is ignored.

If you use the CWPPRMO data set to specify your compiler options, you should use the LANGPARM command. Otherwise, the preprocessor may not be able to distinguish between compiler options and language processor options with the same name. The LANGPARM command allows the preprocessor to identify compiler options that conflict with language processor names, thus preventing unpredictable results.

If you use the PARM statement to specify your compiler options, you can also use the LANGPARM command.

 The LANGPARM command can be used only with the preprocessor.

The following diagram illustrates the syntax for the LANGPARM command.

+--- LANGPARM Command -------------------------------------------------------+
¦  ¦
¦ >>--LANGParm(+---------------+)--><  ¦
¦ +-parm1...parmn-+  ¦
+----------------------------------------------------------------------------+

 parm:

Specifies a parameter to be passed.

LANGUAGE (LANG)

The LANGUAGE command is used to specify the type of compiler to be executed for the PL/I language preprocessor.

The LANGUAGE command is no longer required for the postprocessor.

The following diagram illustrates the syntax for the LANGUAGE command.

+--- LANGUAGE Command -------------------------------------------------------+
¦  ¦
¦ +-PL/I-------+  ¦
¦ >>--LANGuage(+------------+)--><  ¦
¦ +-PLIADcycle-¦  ¦
¦ +-VAPL/I-----+  ¦
¦ +-ENTPL/I----+  ¦
+----------------------------------------------------------------------------+

 PL/I: (Default)

Specifies that the PL/I compiler should be used.

PLIADCYCLE (PLIAD):

Specifies that the PL/I AD/CYCLE compiler should be used. This is also used for LE/370 PL/I.

VISUALAGEPLI(VAPL/I)

Specifies that the VisualAge PL/I compiler should be used.

ENTERPRISEPLI (ENTPL/I)

Specifies that the Enterprise PL/I compiler should be used.

PL/I

The PL/I command controls the compiler listing destination. The parameter for the PL/I command is OUTPUT. The following diagram illustrates the syntax for the PL/I command OUTPUT parameter.

+--- PL/I Command -----------------------------------------------------------+
¦  ¦
¦ +-NOPRint-+ +-NODDio-+  ¦
¦ >>--PL/I(OUtput(+-+---------+-,-+--------+--+))--><  ¦
¦ + +-PRint---+ +-DDIO---+   ¦
¦ +-BOth----------------------¦  ¦
¦ +-NOne----------------------+  ¦
+----------------------------------------------------------------------------+

 OUTPUT (OU):

Specifies whether the compiler listing will be printed or written to a source listing file. Select from the following values:

NOPRINT (NOPR):

(Default) - Does not print the compiler listing.

PRINT (PR):

Prints the compiler listing.

NODDIO (NODD):

(Default) - Does not write the compiler listing to a source listing file.

DDIO (DD):

Writes the compiler listing to a source listing file.

BOTH (BO):

Prints the listing and writes it to a source listing file. This has the same effect as specifying PL/I(OUTOUT(PRINT,DDIO)).

NONE (NON):

Does not print the compiler listing and does not write it to a DDIO file. This has the same effect as PL/I(OUTPUT(NOPRINT,NODDIO)).

PRINT (PR)

 The PRINT command identifies the sections of the listing that will be printed. The parameter for the PRINT command is OUTPUT.

+--- PRINT Command ----------------------------------------------------------+
¦  ¦
¦ +-LIst---+ +-OFfset---+ +-XRef---+  ¦
¦ >>--PRint(OUtput(+--------+-,-+----------+-,-+--------+,-->  ¦
¦ +-NOLIst-+ +-NOOFfset-+ +-NOXRef-+  ¦
¦ +-SOurce---+                   ¦
¦ >--+----------+))--><                      ¦
¦ +-NOSOurce-+       ¦
+----------------------------------------------------------------------------+

 OUTPUT (OU):

Specifies the options for a source listing that will be printed.

LIST (LI):

(Default) - Prints the Pseudo-Assembler section of the listing.

NOLIST (NOLI):

Does not print the Pseudo-Assembler section of the listing.

OFFSET (OF):

(Default) - Prints the Offset section of the listing.

NOOFFSET (NOOF):

Does not print the Offset section of the listing.

XREF (XR):

(Default) Prints the XREF sections of the listing.

NOXREF (NOXR):

Does not print the XREF sections of the listing.

SOURCE (SO): 

(Default) Prints the Source section of the listing.

NOSOURCE (NOSO): 

Does not print the Source section of the listing.

PROCESSOR (PROC)

The PROCESSOR command specifies the output parameters of the PL/I language processor. The parameters available for the PROCESSOR command are:

  • BYPASS
  • ERRORS
  • OUTPUT (VisualAge PL/I or higher only)
  • $NG
  • $NIDR
  • $NO
  • IDENTYES or IDENTNO

BYPASS (BY) Parameter

Specifies whether to run the preprocessor and compiler without running the postprocessor. The following diagram illustrates the syntax for the PROCESSOR command BYPASS parameter.

+--- BYPASS Parameter -------------------------------------------------------+
¦  ¦
¦ +-NOBYpass-+  ¦
¦ >>--PROCessor(+----------+)--><  ¦
¦ +-BYpass---+  ¦
+----------------------------------------------------------------------------+

NOBYPASS (NOBY):

(Default) - Runs the postprocessor.

BYPASS (BY):

Does not run the postprocessor.

ERRORS (ER) Parameter

Specifies how the language processor error messages will be printed. The following diagram illustrates the syntax for the PROCESSOR command ERRORS parameter.

+--- ERRORS Parameter -------------------------------------------------------+
¦  ¦
¦ +-UPper-case-+  ¦
¦ >>--PROCessor(ERrors(+------------+))--><  ¦
¦ +-MIxed-case-+  ¦
+----------------------------------------------------------------------------+

UPPER-CASE (UP):

(Default) - Errors will be printed in uppercase letters.

MIXED-CASE (MI):

Errors will be printed in uppercase and lowercase letters.

OUTPUT (OU) Parameter

Defines options for printing the enhanced listing or writing it to a source listing file. The PLI(OUTPUT(DDIO)) and PROCESSOR(OUTPUT(DDIO)) commands are mutually exclusive. The language processor uses the last-supplied parameter.

This parameter is used by VisualAge PL/I and Enterprise PL/I only.

The following diagram illustrates the syntax for the OUTPUT parameter.

+--- OUTPUT Parameter -------------------------------------------------------+
¦  ¦
¦ +-PRint---+ +-NODDio-+  ¦
¦ >>--PROCessor(OUtput(+-+---------+-,-+--------+-+))--><  ¦
¦ ¦ +-NOPRint-+ +-DDio---+ ¦  ¦
¦ +-BOth---------------------¦  ¦
¦ +-NONe---------------------+  ¦
+----------------------------------------------------------------------------+

PRINT (PR):

(Default) Prints the enhanced listing.

NOPRINT (NOPR):

Does not print the enhanced listing.

NODDIO (NODD):

(Default) Does not write the enhanced listing to a source listing file.

DDIO (DD):

Writes the enhanced listing to a source listing file.

BOTH (BO):

Has the same effect as specifying PROCESSOR(OUTPUT(PRINT,DDIO)).

NONE (NON):

Does not print the enhanced listing and does not write it to a source listing file.

$NG Parameter

Specifies that the preprocessor’s support of INCLUDE %NOPRINT will be bypassed. The following diagram illustrates the syntax for the PROCESSOR command $NG parameter.

+--- $NG Parameter ----------------------------------------------------------+
¦  ¦
¦ >>--PROCessor(+-----+)--><  ¦
¦ +-$NG-+  ¦
+----------------------------------------------------------------------------+

 $NIDR Parameter

Specifies that placement of the date and time stamp on the object module will be bypassed. The following diagram illustrates the syntax for the PROCESSOR command $NIDR parameter.

+--- $NIDR Parameter --------------------------------------------------------+
¦  ¦
¦ >>--PROCessor(+-------+)--><  ¦
¦ +-$NIDR-+  ¦
+----------------------------------------------------------------------------+

 $NO Parameter

Specifies that the preliminary compilation performed by the preprocessor will be bypassed. The preliminary compilation is normally used to determine the compiler options currently in effect. However, if you know that your options satisfy the requirements of the language processor, you can bypass the preliminary compilation to reduce the preprocessor’s execution time.

The following diagram illustrates the syntax for the PROCESSOR command $NO parameter.

+--- $NO Parameter ----------------------------------------------------------+
¦  ¦
¦ >>--PROCessor(+-------+)--><  ¦
¦ +-$NOWB-+  ¦
+----------------------------------------------------------------------------+

 IDENTYES or IDENTNO

By default, BMC AMI language processors attempt to add information to the object deck produced by a compiler (DD SYSLIN). This information assists BMC AMI products in locating the correct member in a BMC AMI Listing File. The Language Processors will by default add an IDENTIFY record to the object deck.

This IDENTIFY record is processed by the Linkage Editor or Binder when the object deck is transformed into a load module or program object. The data added to the load module or program object is non-executable, not loaded into memory when the module executes. It identifies the BMC AMI Listing File where the language processor stored its output for that program.

If you want to suppress this IDENTIFY card for a particular run of a Language Processor, you may supply the input PROCESSOR(IDENTNO) in the CWPPRMO input.

The default value is PROCESSOR(IDENTYES). You may alter this default by using the Customer Modification Facility (see Using-the-CWDDUNLP-Source-Extraction-utility). If you alter the default to IDENTNO, you may then wish to supply the input    PROCESSOR(IDENTYES) in CWPPRMO, for an individual execution of the Language Processor.

PROGRAM-NAME (PRO)

The PROGRAM-NAME command specifies an override name for members in the source listing file. The following diagram illustrates the syntax for the PROGRAM-NAME command.

+--- Program Name ----------------------------------------------------------+
¦ ¦
¦ >>--PROgram-name(+------+)-->< ¦
¦ +-name-+ ¦
+---------------------------------------------------------------------------+

name: 

Specifies an alternative name for a source listing written to the source listing file.

SYSTEM (SYS)

The SYSTEM command performs miscellaneous functions. The syntax for SYSTEM is:

+--- SYSTEM Command ---------------------------------------------------------+
¦  ¦
¦ >>--SYStem(+-------+,-+------+,-+-----+,-+----+-)-><  ¦
¦ +-TRace-+ +-TIme-+ +-PTF-+ +-ZAP+  ¦
+----------------------------------------------------------------------------+

TRACE (TR):

Specifies that internal traces be printed to CWPERRM.

TIME (TI):

Specifies that internal time will be printed with the trace.

PTF:

Specifies that PTF numbers currently installed on the CSS library will be printed. This parameter is used by BMC AMI Technical Support during problem diagnosis.

ZAP

Specifies that PTF numbers currently installed on the CSS library will be printed. This parameter is used by BMC AMI Technical Support during problem diagnosis.

The ZAP parameter is allowed for compatibility with pre-SMP/E releases. 

ZIIP (ZIIP)

The ZIIP command controls the use of an available zIIP processor.  The command provides a mechanism to disable zIIP use by the language processor, and to control memory usage and dump options when zIIP processing is enabled.  The following diagram illustrates the syntax of the ZIIP command:

+--- ZIIP Command -----------------------------------------------------------+
¦  ¦
¦ +-YES-+ +-MEM64-+ +-DUMP---+  ¦
¦ >>--ZIIP(+-----+,-+-------+,-+--------+-)-><  ¦
¦ +-NO--+ +-MEM31-+ +-NODUMP-+  ¦
+----------------------------------------------------------------------------+

YES:

Indicates that zIIP processing is to be enabled.  This is the default.

NO:

Indicates that zIIP processing is disabled and all language processing will execute on a general purpose processor.  Alternately, zIIP processing can also be disabled by including a CXZPIGNR DD DUMMY statement in the language processor JCL stream.

MEM64:

Indicates that 64-bit memory will be used during language processing.  This is the default.

MEM31:

Indicates that normal 31-bit memory will be used during language processing.

DUMP:

Indicates that a machine readable dump will be taken if the language processor abends while processing during zIIP execution. This is the default.

NODUMP:

Indicates that a machine readable dump will be suppressed if the language processor abends while processing during zIIP execution.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*