COMPILER OPTION DESCRIPTIONS - IBM Mainframe

The compiler option descriptions that follow are given in alphabetical order. The defaults listed with the options below are the VS COBOL II defaults shipped with the product. They may have been changed by your installation.     

  • ADV - Default is ADV, ADV is meaningful only if you use WRITE . . . ADVANCING in your source code. With ADV in effect, the compiler adds 1 byte to the record length to account for the printer control character. ADV conforms to the COBOL 85 Standard. Use NOADV if you have already adjusted your record length to include 1 byte for the printer control character.
  • AWO - Default is NOAWO. With AWO specified, the APPLY WRITE-ONLY clause will be in effect if-any file within the program is physical sequential with blocked V-mode records. The clause will be in effect even if it was not specified within the program.
  • BUFSIZE - Default is 4096. Abbreviation is BUF. Use BUFSIZE to allocate an amount of main storage to the buffer for each compiler work data set (where IK = 1024 bytes decimal). Usually a large buffer size will enhance the performance of the compiler. If you use both BUFSIZE andSIZE, the amount allocated to buffers is included in the amount of main storage available for compilation via the SIZE option. BUFSIZE cannot exceed the track capacity for the device used, nor can it exceed the maximum allowed by data management services.
  • CMPR2 - Default is NOCMPR2. Use CMPR2 when you want the compiler to generate code that is compatible with code generated by VS COBOL 11 Release 2. Valid COBOL source programs that compiled successfully under Release 2 will also compile successfully under Release 4 with CMPR2 in effect, and will provide compatible results. Implementation of the COBOL 85 Standard created some instances where incompatibilities with Release 2 can occur. Use of the CMPR2 and FLAGMIG options aid in the migration of programs written for VS COBOL 11 Release 2 to the Release 4 level. NOCMPR2 conforms to the COBOL 85 Standard.
  • COMPILE - Default is NOCOMPILE(S). Abbreviations are C or NOC. Use the COMPILE option only if you want to force full compilation even in the presence of serious errors. All diagnostics and object code will be generated. You should not attempt to execute the object code generated if the compilation resulted in serious errors—the results could be unpredictable or an abnormal termination could occur. Use NOCOMPILE without any sub-parameter to request a syntax check (only diagnostics produced no object code). Use NOCOMPILE with W, E, or S for conditional full compilation. Full compilation (diagnosis and object code) will stop when the compiler finds an error of the level you specify (or higher), and only syntax checking will continue. If you specify an unconditional NOCOMPILE, the following options have no effect because no object code will be produced: DECK, FDUMP, LIST. OBJECT, OFFSET, OPTIMIZE, SSRANGE, TEST. But these options will be listed even though they will have no effect.
  • DATA - Default is DATA(31). When a program is compiled with the RENT option and is to be executed in an environment with extended addressing capabilities, the DATA(24 | 31) option controls whether storage for dynamic data areas, such as Working-Storage and FD record areas, is acquired from below the 16-megabyte line or from unrestricted storage. Data items with the EXTERNAL attribute are always allocated below the 16-megabyte line, regardless of the DATA option. Use DATA(24) to have your dynamic data areas allocated from storage below 16 megabytes. Specify DATA(24) for programs running in an extended addressing environment in 31 -bit mode that are passing data parameters to programs in 24-bit mode. Otherwise, the data may not be addressable by the called program. Use DATA (31) to have your dynamic data areas allocated from unrestricted storage. Specifying this option can result in the acquisition of storage in virtual addresses either above or below 16 megabytes. The operating system generally satisfies the request by providing space in virtual addresses above 16 megabytes, if it is available. If you specify the NORENT compiler option, DATA (31) has no effect.
  • DBCS - Default is NODBCS. Use of DBCS causes the compiler to recognize X'OE' (SO) and X'OF' (SI) as shift codes for the double-byte portion of a nonnumeric literal. With DBCS selected, the double-byte portion of the literal Ir-syntax checked and the literal remains category alphanumeric. DBCS is ignored if either CMPR2 or FLAGSTD is in effect. NODBCS conforms to the COBOL 85 Standard.
  • DECK - Default is NODECK. Abbreviations are D or NOD. Use DECK to produce object code in the form of 80-column card images. If you use the DECK option, be certain that SYSPUNCH is defined in your JCL for compilation.
  • DUMP- Default is NODUMP. Abbreviations are DU or NODU. Use DUMP to produce a system dump at compile time. This option is not intended for general use. The DUMP option is only used at the request of an IBM representative. The dump, which consists of a listing of the failing program's registers and a storage dump, is intended primarily for diagnostic personnel for determining errors in the compiler.  Use NODUMP if you want normal termination processing, including: diagnostic messages produced so far in compilation, a description of the error, the name of the compiler phase currently executing, the line number of the COBOL statement being processed when the error was found (if you have compiled with OPTIMIZE, the line number may not always be correct; for some errors, it will be the last line in the program), the contents of the general purpose registers, etc.
  • DYNAM - Default is NODYNAM. Abbreviations are DYN or NODYN. Use DYNAM to cause separately compiled programs invoked through the CALL literal statement to be loaded dynamically at run time. DYNAM causes dynamic loads (for CALL) and deletes (for CANCEL) of separately compiled programs at object time. Any CALL identifier statements that cannot be resolved in your program are also treated as dynamic calls. When you specify DYNAM, RESIDENT is also put into effect. DYNAM conforms to the COBOL 85 Standard. You must use NODYNAM with CICS.
  • EXIT - Default is NOEXIT. If you specify the EXIT option without providing a least one sub-option, NOEXIT will be in effect. The sub-options can be specified in any order, separated by either commas or spaces. If you specify both the positive and negative form of a sub-option (INEXIT | NOINEXT, LIBEXIT | NOLIBEXIT, or PRTEXIT | NOPRTEXIT), the form specified last takes effect. If you specify multiple instances of the same sub-option, the one specified last takes effect. Use the EXIT option to allow the compiler to accept user-supplied modules in place of SYSIN, SYSLIB (or copy library), and SYSPRINT.
  • FASTSRT - Default is NOFASTSRT. Abbreviations are FSRT or NOFSRT. FASTSRT allows IBM DFSORT, or its equivalent, to perform the input and output instead of COBOL. FASTSRT conforms to the COBOL 85 Standard.
  • FDUMP - Default is NOFDUMP. Abbreviations are FDU or NOFDU. Use FDUMP to produce a formatted dump when execution ends in an abnormal termination (abend). If you use FDUMP at run time, include a DD statement to define a data set of SYSDBOUT for FDUMP output. On CICS, the FDUM? output is written to the temporary storage CEBRxxxx, where xxxx is the terminal-id associated with the transaction. If a program compiled with FDUMP executes in the same run unit as any program compiled with TEST, there will be no formatted dump output. You will not obtain formatted dump output if you specify the run-time option NOSTAE. If NUMBER is specified with FDUMP, sequence fields require numeric characters. Because statement number tables and data description tables are included as part of the object code, the size of the object module is increased when you use FDUMP.
  • FLAG - Default is FLAG(I). Abbreviations are F or NOF. The syntax is FLAG(x,y) where x is I. W, E, S, or U and y is I, W, E, S, or U. Use FLAG(x) to produce diagnostic messages for errors of a severity level x or above at the end of the source listing. Use FLAG(x,y) to produce diagnostic messages for errors of severity level jj or above at the end of the source listing, with error messages of severity y and above can be embedded directly in the source listing. The severity coded for y must not be lower than the severity coded for x. To use FLAG(x.y), you also need to specify the SOURCE compiler option. Error messages in the source listing are set off by embedding the statement number within an arrow that, points to the message code. The message code is then followed by the message text.
  • FLAGMIG - Default is NOFLAGMIG. Use FLAGMIG to identify language elements that may be implemented differently in Release 2 than in Release 4. To use FLAGMIG, you must also specify the CMPR2 compiler option.
  • FLAGSAA - Default is NOFLAGSAA. Use FLAGSAA to indicate language elements that are not defined as part of the COBOL interface for IBM's Systems Application Architecture (SAA). The purpose of this flagging is to identify elements that may restrict program portability across IBM systems. The elements will be flagged with warning (W) level messages at compile time. To use FLAGSAA, the NOCMPR2 compiler option must be in effect, and FLAGSTD cannot be specified. If FLAGSTD and FLAGSAA are specified together under NOCMPR2, FLAGSAA is ignored. NOFLAGSAA conforms to the COBOL 85 Standard.
  • FLAGSTD - Default is NOFLAGSTD. Use FLAGSTD to get informational messages about the COBOL 85 Standard elements included in your program. To use FLAGSTD, the NOCMPR2 compiler option must be in effect. You can specify any of the following items for flagging: a selected Federal Information Processing Standard (FIPS) COBOL subset, any of the optional modules, obsolete language elements, any combination of subset and optional modules, any combination of subset and obsolete elements, IBM extensions, etc. The informational messages appear in the source program listing. Flagging is suppressed when any errors are detected (diagnostic level E or higher). FLAGSTD requires the standard set of reserved words.
  • LANGUAGE - Default is LANGUAGE(ENGLISH). Abbreviation is LANG(EN | UE | JA | JP). Use the LANGUAGE option to select the language in which compiler output will be printed. The information that will be printed in the selected language includes diagnostic messages, source listing page and scale headers, FIPS message headers, message summary headers, compilation summary, and headers and notations that result from the selection of certain compiler options (MAP, XREF, VBREF, and FLAGSTD).
  • LIB - Default is NOLIB. If your program uses COPY, BASIS, or REPLACE statements, you need to specify the LIB compiler option. In addition, for COPY and BASIS statements, include in your JCL DD statements for the library or libraries from which the compiler can take the copied code, and also allocate and free SYSUT5. LIB conforms to the COBOL 85 Standard.
  • LINECOUNT - Default is LINECOUNT(60) or LC(60). Use LINECOUNT(nnn) to specify the number of lines to be printed on each page of the compilation listing, or use LINECOUNT(O) to suppress pagination.
  • LIST -Default is NOLIST. Use LIST to produce a listing of the assembler-language expansion of your source code.
  • MAP - Default is NOMAP. MAP to produce a listing of the items you defined in the Data Division.
  • NAME - Default is NONAME, or NAME(NOALIAS) if only NAME is specified. Use NAME to generate a link-edit NAME card for each object module. NAME is also used to generate names for each load module when doing batch compilations. When NAME is specified, a NAME card is appended to each object module that is created. 
  • NUMBER - Default is NONUMBER. Abbreviations are NUM or NONUM. Use NUMBER if you have line numbers in your source code and want those numbers to be used in error messages and MAP, LIST, and XREF listings. If you request NUMBER, columns 1 through 6 are checked to make sure that they contain numbers, and the sequence is checked according to numeric collating sequence. (In contrast, SEQUENCE checks them according to EBCDIC collating sequence.) When a line number is found to be out of sequence, the compiler assigns to it a line number with a value one number higher than the line number of the preceding statement. Sequence-checking continues with the next statement, based on "the newly assigned value of the previous line. If you use COPY statements and NUMBER is in effect, be sure that your source program line numbers and the COPY member line numbers are coordinated. Use NONUMBER if you do not have line numbers in your source code, or if you want the compiler to ignore the line numbers you do have in your source code. With NONUMBER in effect, the compiler generates line numbers for your source statements and uses those numbers as references in listings. NONUMBER conforms to the COBOL 85 Standard.
  • NUMPROC - Default is NUMPROC(NOPFD). Use NUMPROC(NOPFD) if you want the compiler to perform invalid sign processing. This option is not as efficient as NUMPROC(PFD); object code size will be increased, and there may be an increase in run-time overhead to validate all signed data. NUMPROC(NOPFD) and NUMPROC(MIG) conform to the COBOL 85 Standard. NUMPROC(PFD) is a performance option that can be used to bypass invalid sign processing.
  • OBJECT - Default is 6BJECT. Abbreviations are OBJ or NOOBJ. Use OBJECT to place the generated object code on disk or tape to be later used as input for the linkage editor. If you specify OBJECT, include a SYSLIN DD statement in your JCL for compilation. The only difference between DECK and OBJECT is in the routing of the data sets: DECK output goes to the data set associated with SYSPUNCH ddname but OBJECT output goes to the data set associated with SYSLIN ddname. Use the option your installation guidelines recommend. NOOBJECT and TEST are mutually exclusive. If you use both, NOOBJECT is ignored.
  • OFFSET - Default is NOOFFSET. Abbreviations are OFF or NOOFF. Use OFFSET to produce a condensed Procedure Division listing. With OFFSET, the procedure portion of the listing will contain line numbers, statement references, and the location of the first instruction generated for each statement.
  • OPTIMIZE - Default is NOOPT1MIZE. Abbreviations are OPT or NOOPT. Use OPTIMIZE to reduce the run time of your object program; optimization may also reduce the amount of main storage your object program uses. Since OPTIMIZE increases compile time, it should not be used when debugging. The OPTIMIZE option is turned off in the case of a severe-level error or higher. OPTIMIZE and TEST is mutually exclusive. If you use both, OPTIMIZE is ignored.
  • OUTDD - Default is OUTDD(SYSOUT). Abbreviation is OUT. Use OUTDD if you want run­time DISPLAY output on a data set other than SYSOUT.
  • QUOTE/APOST - Default is QUOTE. Abbreviations are Q or APOST. Use QUOTE if you want the quotation mark (") to be the delimiter character for literals. QUOTE conforms to the COBOL 85 Standard. Use APOST if you want the apostrophe (') to be the delimiter character for literals.
  • RENT - Default is NORENT. Use RENT if your object code is to be reentrant. When you use this option, the RESIDENT option is also put into effect. A program compiled as RENT is generated as a reentrant object module and can be invoked as a main program or subprogram. Reentrant object code can be executed only in run units where all COBOL programs have been generated with the RESIDENT option unless the run-time option MIXRES has been specified. Program compiled as NORENT is generated as a non-reentrant object module and can be invoked as a main program or subprogram. You must use RENT with CICS. When a reentrant program is to be run in an extended addressing environment, the DATA(24 | 31) option may be used to control whether dynamic data areas are allocated in unrestricted storage or in storage acquired from below 16 megabytes. Programs must be compiled with RENT if they will be executed with 31-bit addressing in virtual storage addresses above 16 megabytes.
  • RESIDENT - Default is NORESIDENT. Abbreviations are RES or NORES. Use the RESIDENT option to request the COBOL Library Management Feature. (The COBOL Library Management Feature causes most COBOL library routines to be located dynamically at run time, instead of being link-edited with the COBOL program.) In this way, application programs automatically take advantage of any service updates applied to the library routines without having to be link-edited again. Even if you do not specify it, the RESIDENT option is always in effect when the DYNAM option is specified or if your program uses CALL identifier. If a COBOL run unit is generated entirely by compiling with VS COBOL II and NORESIDENT, the load module contains all required VS COBOL II library routines for execution; that is, an online VS COBOL II library is not required at run time. RESIDENT conforms to the COBOL 85 Standard. You must use RESIDENT with CICS.
  • SEQUENCE - Default is SEQUENCE. Abbreviations are SEQ or NOSEQ. When you use SEQUENCE, the compiler examines columns 1 through 6 of your source statements to check that the statements are arranged in ascending order according to their EBCDIC collating sequence. The compiler issues a diagnostic message if any statements are not in ascending sequence (source statements with blanks in columns 1 through 6 do not participate in this sequence check and do not result in messages). If you use COPY statements and SEQUENCE is in effect, be sure that your source program sequence fields and the COPY member sequence fields are coordinated. If you use NUMBER and SEQUENCE, the sequence is checked according to numeric, rather than EBCDIC, collating sequence. Use NOSEQUENCE to suppress this checking and the diagnostic messages. NOSEQUENCE conforms to the COBOL 85 Standard.
  • SIZE - Default is SIZE(MAX). Use SIZE to specify the amount of main storage available for compilation. Do not use SIZE(MAX) if, when you invoke the compiler, you require it to leave a specific amount of unused storage available in the user region.
  • SOURCE - Default is SOURCE. Abbreviations are S or NOS. Use SOURCE to get a listing of your source program. This listing will include any statements embedded by PROCESS or COPY statements. SOURCE must be specified if you want embedded messages in the source listing. Use NOSOURCE to suppress the source code from the compiler output listing. If you want to limit the SOURCE output, use "CONTROL SOURCE or NOSOURCE statements in your Procedure Division. Your source statements following a "CONTROL NOSOURCE are not included in the listing at all, unless a "CONTROL SOURCE statement switches the output back to normal SOURCE format.
  • SPACE - Default is SPACE(l). Use SPACE to select single, double, or triple spacing in your source code listing. SPACE is meaningful only when SOURCE is in effect.
  • SSRANCE - Default is NOSSRANGE. Abbreviations are SSR or NOSSR. Use SSRANGE to generate code that checks if subscripts or indexes attempt to reference an area outside the region of the table. Each subscript or index is not individually checked for validity; rather, the effective address is checked to ensure that it does not cause a reference outside the region of the table. Variable-length items will also be checked to ensure that their current length is within their maximum defined length.
  • TERMINAL - Default is NOTERM1NAL Abbreviations are TERM or NOTERM. Use TERMINAL to send progress and diagnostic messages to the SYSTERM data set. Use NOTERMINAL if this additional output is not desired.
  • TEST - Default is NOTEST. Abbreviations are TES or NOTES. Use TEST to produce object code that can be executed with VS COBOL 1t*batch or interactive debug. When you specify TEST, the following options go into effect: RES, NOFDUMP, NOOPTIMIZE, and OBJECT. If NUMBER is specified with TEST, sequence fields require numeric characters. TEST is deactivated if both the WITH DEBUGGING MODE clause and the USE FOR DEBUGGING statement are specified. The TEST option will appear in the list of options, but a diagnostic message will be issued to advise you that, because of the conflict, TEST will not be in effect.
  • TRUNC Default is TRUNC(STD). TRUNC(STD) conforms to the COBOL 85 Standard, while TRUNC(OPT) and TRUNC(BIN) are IBM extensions. TRUNC(STD) and TRUNC(OPT) are equivalent to TRUNC and NOTRUNC (respectively) in VS COBOL II Release 2. Use TRUNC(STD) to control the way arithmetic fields are truncated during MOVE and arithmetic operations. TRUNC(STD) applies only to USAGE BINARY receiving fields in MOVE statements and arithmetic expressions. When TRUNC(STD) is in effect, the final result of an arithmetic expression, or the sending field in the MOVE statement, is truncated to the number of digits in the PICTURE clause of the BINARY receiving field. TRUNC(OPT) is a performance option. When TRUNC(OPT) is specified, the compiler assumes that the data conforms to PICTURE and USAGE specifications of the USAGE BINARY receiving fields in MOVE statements and arithmetic expressions. The results are manipulated in the most optimal way, with possible truncation to the number of digits in the PICTURE clause, or to the size of the binary field in storage (halfword, fullword, or doubleword). You should use the TRUNC(OPT) option only if you are sure that the data being moved into the binary areas will not have a value with larger precision than that defined by the PICTURE clause for the binary item. Otherwise, truncation of high-order digits may occur. This truncation is performed in the most efficient manner possible; thus, the results will be dependent on the particular code sequence generated. It is not possible to predict the truncation without seeing the code sequence generated for a particular statement.
  • VBREF - Default is NOVBREF. Use VBREF to get a cross-reference among all verb types used in the source program and the line numbers in which they are used. VBREF also produces a summary of how many times each verb was used in the program. Use NOVBREF for more efficient compilation.
  • WORD - Default is NOWORD. Abbreviations are WD or NOWD. Use WORD(xxxx) to specify that an alternate reserved word table is to be used during compilation.
  • XREF - Default is NOXREF. Abbreviations are X or NOX. You can choose XREF, XREF(FULL), or XREF(SHORT). Both XREF and XREF(FULL), which yield the same results, provide the same cross-reference listing as XREF did under Release 3.0. Use XREF to get a sorted cross-reference listing. EBCDIC data-names and procedure-names will be listed in alphanumeric order. DBCS data-names and procedure-names will be listed based on their physical order in the program, and will appear before the EBCDIC data-names and procedure-names, unless the DBCSXREF installation option is selected with a DBCS ordering program. In this case, DBCS data-names and procedure-names will be ordered as specified by the DBCS ordering program. Also included will be a section listing all the program names that are referenced within your program and the line number where they are defined. External program names will be identified as such. If you use XREF and SOURCE, cross-reference information will also be printed on the same line as the original source in the listing. Line number references or other information, will appear on the right hand side of the listing page. Information included in the embedded references lets you know if the name is undefined, or delicately defined (UND or DUP will be printed); if an item is implicitly defined (IMP), such as special registers or figurative constants; and if a program name is external (EXT). If you use XREF and NOSOURCE, you will get only the sorted cross-reference listing. XREF(SHORT) will print on the explicitly referenced variables in the cross-reference listing. XREF(SHORT) applies to DBCS data names and procedure-names as well as EBCDIC names. NOXREF suppresses the listing.
  • ZWB - Default is ZWB. With ZWB, the compiler removes the sign from a signed external decimal (DISPLAY) field when comparing this field to an alphanumeric elementary field during execution. If the external decimal item is a scaled item (contains the symbol 'P' in its PICTURE character-string), its use in comparisons will not be affected by ZWB. Such items always have their sign removed before the comparison is made to the alphanumeric field. ZWB affects program execution logic; that is, the same COBOL source program can give different results, depending on the option setting. ZWB conforms to the COBOL 85 Standard. Use NOZWB if you want to test input numeric fields for SPACES.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

IBM Mainframe Topics