Create Bound COBOL Program (CRTBNDCBL)

The CRTBNDCBL command compiles an ILE COBOL source program into an runnable program in one step. You can use this command interactively, in batch mode, or in a CL program.

All object names specified for the CRTBNDCBL command must follow server naming conventions.

A description of the parameters for the CRTBNDCBL command follows.

Parameters

Keyword Description Choices Notes
PGM Program Qualified object name Optional, Positional 1
Qualifier 1: Program Name, *PGMID
Qualifier 2: Library Name, *CURLIB
SRCFILE Source file Qualified object name Optional, Positional 2
Qualifier 1: Source file Name, QCBLLESRC
Qualifier 2: Library Name, *LIBL, *CURLIB
SRCMBR Source member Name, *PGM Optional, Positional 3
SRCSTMF Source stream file Path name Optional
GENLVL Generation severity level 0-30, 30 Optional
TEXT Text 'description' Character value, *SRCMBRTXT, *BLANK Optional
OUTPUT Output *PRINT, *NONE Optional, Positional 4
OPTION Compiler options Values (up to 50 repetitions): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *NOXREF, *XREF, *GEN, *NOGEN, *NOSEQUENCE, *SEQUENCE, *NOVBSUM, *VBSUM, *NONUMBER, *NUMBER, *LINENUMBER, *NOMAP, *MAP, *NOOPTIONS, *OPTIONS, *QUOTE, *APOST, *NOSECLVL, *SECLVL, *PRTCORR, *NOPRTCORR, *MONOPRC, *NOMONOPRC, *RANGE, *NORANGE, *NOUNREF, *UNREF, *NOSYNC, *SYNC, *NOCRTF, *CRTF, *NODUPKEYCHK, *DUPKEYCHK, *NOINZDLT, *INZDLT, *NOBLK, *BLK, *STDINZ, *NOSTDINZ, *STDINZHEX00, *NODDSFILLER, *DDSFILLER, *NOIMBEDERR, *IMBEDERR, *STDTRUNC, *NOSTDTRUNC, *NOCHGPOSSGN, *CHGPOSSGN, *NOEVENTF, *EVENTF, *MONOPIC, *NOMONOPIC, *NOCRTARKIDX, *CRTARKIDX Optional, Positional 5
CVTOPT Conversion options Values (up to 8 repetitions): *NOVARCHAR, *VARCHAR, *NODATETIME, *DATETIME, *NOPICXGRAPHIC, *PICXGRAPHIC, *NOPICGGRAPHIC, *PICGGRAPHIC, *NOFLOAT, *FLOAT, *NODATE, *DATE, *NOTIME, *TIME, *NOTIMESTAMP, *TIMESTAMP, *NOCVTTODATE, *CVTTODATE, *NOPICNGRAPHIC, *PICNGRAPHIC Optional
MSGLMT Message limit Element list Optional
Element 1: Number of messages 0-9999, *NOMAX
Element 2: Message limit severity 0-30, 30
DBGVIEW Debug view option Element list Optional
Element 1: Debug view *STMT, *SOURCE, *LIST, *ALL, *NONE
Element 2: Compress listing view *NOCOMPRESSDBG, *COMPRESSDBG
DBGENCKEY Debug encryption key Character value, *NONE Optional
OPTIMIZE Optimize level *NONE, *BASIC, *FULL, *NEVER Optional
FLAGSTD FIPS flagging Values (up to 2 repetitions): *NOFIPS, *MINIMUM, *INTERMEDIATE, *HIGH, *NOOBSOLETE, *OBSOLETE Optional
EXTDSPOPT Extended display options Values (up to 3 repetitions): *DFRWRT, *NODFRWRT, *UNDSPCHR, *NOUNDSPCHR, *ACCUPDALL, *ACCUPDNE Optional
FLAG Flagging severity 0-99, 0 Optional
REPLACE Replace program *YES, *NO Optional
USRPRF User profile *USER, *OWNER Optional
AUT Authority Name, *LIBCRTAUT, *ALL, *CHANGE, *USE, *EXCLUDE Optional
LINKLIT Link literal *PGM, *PRC Optional
SIMPLEPGM Simple program *YES, *NO Optional
TGTRLS Target release Simple name, *CURRENT, *PRV Optional
SRTSEQ Sort sequence Single values: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR
Other values: Qualified object name
Optional
Qualifier 1: Sort sequence Name
Qualifier 2: Library Name, *LIBL, *CURLIB
LANGID Language id Character value, *JOBRUN, *JOB Optional
ENBPFRCOL Enable performance collection Single values: *PEP
Other values: Element list
Optional
Element 1: Collection level *FULL, *ENTRYEXIT
BNDDIR Binding directory Single values: *NONE
Other values (up to 50 repetitions): Qualified object name
Optional
Qualifier 1: Binding directory Name
Qualifier 2: Library Name, *LIBL, *CURLIB, *USRLIBL
STGMDL Storage model *INHERIT, *SNGLVL, *TERASPACE Optional
ACTGRP Activation group Name, *STGMDL, *NEW, *CALLER Optional
PRFDTA Profiling data *NOCOL, *COL Optional
CCSID Coded character set ID Integer, *JOBRUN, *HEX, *JOB Optional
NTLCCSID National CCSID Integer, 13488 Optional
ARITHMETIC Arithmetic mode *NOEXTEND, *EXTEND31, *EXTEND31FULL, *EXTEND63 Optional
NTLPADCHAR Padding character Element list Optional
Element 1: Single byte to national Character value, *DEFAULT
Element 2: Double byte to national Character value, *DEFAULT
Element 3: National to national Character value, *DEFAULT
LICOPT Licensed Internal Code options Character value Optional
INCDIR Include directory Values (up to 32 repetitions): Path name, *NONE Optional
PGMINFO Program interface information Element list Optional
Element 1: Generate *NO, *PCML
Element 2: Location *STMF, *MODULE, *ALL
INFOSTMF Program interface stream file Path name Optional

Program (PGM)

Specifies the program name and library name for the program object you are creating. The program name and library name must conform to server naming conventions. The possible values are:

*PGMID
The name for the compiled program is taken from the PROGRAM-ID paragraph in the ILE COBOL source program. When SIMPLEPGM(*NO) is specified, the name of the compiled program object is taken from the PROGRAM-ID paragraph of the first ILE COBOL source program in the sequence of source programs (multiple compilation units in a single source file member).
program-name
Enter a name to identify the compiled ILE COBOL program. If you specify a program name for this parameter, and compile a sequence of source programs and if SIMPLEPGM(*YES) is specified, the first program in the sequence uses this name; any other programs use the name specified in the PROGRAM-ID paragraph in the corresponding ILE COBOL source program.

The possible library values are:

*CURLIB
The created program object is stored in the current library. If you have not assigned a library as the current library, QGPL is used.
library-name
Enter the name of the library where the created program object is to be stored.

Source file (SRCFILE)

Specifies the name of the source file and library that contains the ILE COBOL source code to be compiled. This source file should have a record length of 92. The possible values are:

QCBLLESRC
Specifies that the source file, QCBLLESRC, contains the ILE COBOL source to be compiled.
source-file-name
Enter the name of the source file that contains the ILE COBOL source to be compiled.

The possible library values are:

*LIBL
The library list is searched to find the library where the source file is located.
*CURLIB
The current library is used. If you have not assigned a library as the current library, QGPL is used.
library-name
Enter the name of the library where the source file is located.

Source member (SRCMBR)

Specifies the name of the member that contains the ILE COBOL source code to be compiled. You can specify this parameter only if the source file referred to in the SRCFILE parameter is a database file. The possible values are:

*PGM
The source file member with the same name as the program name supplied on the PGM parameter is used.

If you do not specify a program name for the PGM parameter, the compiler uses the first source member of the database source file.

source-file-member-name
Enter the name of the member that contains the ILE COBOL source code.

Source stream file (SRCSTMF)

Specifies the path name of the stream file containing the ILE COBOL source code to be compiled.

The path name can be either absolutely or relatively qualified. An absolute path name starts with '/'; a relative path name starts with a character other than '/'.

If absolutely-qualified, the path name is complete. If relatively-qualified, the path name is completed by appending the job's current working directory to the path name.

The SRCMBR and SRCFILE parameters cannot be specified with the SRCSTMF parameter.

Generation severity level (GENLVL)

Specifies the severity level that determines if a module object is created. The severity level corresponds to the severity level of the messages produced during compilation. This parameter applies individually to each compilation unit in a source file member. Other compilation units in the source file member will still be compiled even if a previous compilation unit fails.

The possible values are:

30
No program object is created if errors occur with a severity level equal to or greater than 30.
severity-level
Specify a one or two-digit number, 0 through 30, which is the severity level you want to use to determine if a program object is created. No program object is created if errors occur with a severity level equal to or greater than this severity level.

Text 'description' (TEXT)

Allows you to enter text that briefly describes the program and its function.

*SRCMBRTXT
The same text that describes the database file member containing the ILE COBOL source code, is used to describe the program object. If the source comes from a device or inline file, specifying *SRCMBRTXT has the same effect as specifying *BLANK.
*BLANK
No text is specified.
text-description
Enter text briefly describing the program and its function. The text can be a maximum of 50 SBCS characters in length and must be enclosed in single quotation marks. The single quotation marks are not part of the 50-character string.

Output (OUTPUT)

Specifies if the compiler listing is generated or not. The possible values are:

*PRINT
A compiler listing is generated. If a member is being compiled, the output file has the same name as the member. If a stream file is being compiled and *PGMID is specified in the PGM parameter, the output file has the name COBOLPGM00. Otherwise, it has the same name as the program.
*NONE
No compiler listing is generated.

Compiler options (OPTION)

Specifies the options to use when the ILE COBOL source code is compiled.

Options specified in the PROCESS statement of an ILE COBOL source program override the corresponding options of the OPTION parameter.

The possible values of the OPTION parameter are:

*SOURCE or *SRC
The compiler produces a source listing, consisting of the ILE COBOL source program and all compilation-time error messages.
*NOSOURCE or *NOSRC
The compiler does not produce the source part of the listing. If you do not require a source listing, you should use this option because compilation may take less time.
*NOXREF
The compiler does not produce a cross-reference listing for the ILE COBOL source program.
*XREF
The compiler produces a cross-reference listing for the ILE COBOL source program.
*GEN
The compiler creates a program object after the ILE COBOL source is compiled.
*NOGEN
The compiler does not create a program object after the ILE COBOL source program is compiled. You might specify this option if you want only error messages or listings.
*NOSEQUENCE
The reference numbers are not checked for sequence errors.
*SEQUENCE
The reference numbers are checked for sequence errors. Sequence errors do not occur if the *LINENUMBER option is specified.
*NOVBSUM
Verb usage counts are not printed.
*VBSUM
Verb usage counts are printed.
*NONUMBER
The source-file sequence numbers are used for reference numbers.
*NUMBER
The user-supplied sequence numbers (columns 1 through 6) are used for reference numbers.
*LINENUMBER
The sequence numbers created by the compiler are used for reference numbers. This option combines ILE COBOL program source code and source code introduced by COPY statements into one consecutively numbered sequence. Use this option if you specify FIPS (Federal Information Processing Standards) flagging or SAA flagging.
*NOMAP
The compiler does not list the Data Division map.
*MAP
The compiler lists the Data Division map.
*NOOPTIONS
Options in effect are not listed for this compilation.
*OPTIONS
Options in effect are listed for this compilation.
*QUOTE
Specifies that the delimiter quotation mark (") is used for nonnumeric literals, hexadecimal literals, and Boolean literals. This also specifies that the value of the figurative constant QUOTE has the EBCDIC value of a quotation mark.
*APOST
Specifies that the delimiter apostrophe (') is used for nonnumeric literals, hexadecimal literals, and Boolean literals. This option also specifies that the value of the figurative constant QUOTE has the EBCDIC value of an apostrophe.
*NOSECLVL
Second level message text is not listed for this compilation.
*SECLVL
Second level message text is listed for this compilation, along with the first-level error text, in the message section of the compiler listing.
*PRTCORR
Comment lines are inserted in the compiler listing indicating which elementary items were included as a result of the use of the CORRESPONDING phrase.
*NOPRTCORR
Comment lines are not inserted in the compiler listing when the CORRESPONDING phrase is used.
*MONOPRC
The program-name (literal or word) found in the PROGRAM-ID paragraph, the CALL, CANCEL, or SET ENTRY statements, and the END PROGRAM header is converted to all upper-case characters (monocasing) and the rules for program-name formation are enforced.
*NOMONOPRC
The program-name (literal or word) found in the PROGRAM-ID paragraph, the CALL, CANCEL, or SET ENTRY statements, and the END PROGRAM header is not converted to all upper-case characters (no monocasing) and the rules for program-name formation are not enforced. This option allows special characters not allowed for standard COBOL to be used in the CALL target.
*RANGE
At run time, subscripts are verified to ensure they are within the correct ranges, but index ranges are not verified. Reference modification and compiler-generated substring operations are also checked.

The contents of date-time items are checked to make sure their format is correct, and that they represent a valid date, time, or timestamp.

*NORANGE
Ranges are not verified at run time.

Note: The *RANGE option generates code for checking subscript ranges. For example, it ensures that you are not attempting to access element 21 of a 20-element array.

The *NORANGE option does not generate code to check subscript ranges. As a result, the *NORANGE option produces faster running code.

*NOUNREF
Unreferenced data items are not included in the compiled program. This reduces the amount storage used, allowing a larger program to be compiled. You cannot look at or assign to an unreferenced data item during debugging when the *NOUNREF option is chosen. The unreferenced data items still appear in the cross-reference listings produced by specifying OPTION (*XREF).
*UNREF
Unreferenced data items are included in the compiled program.
*NOSYNC
The SYNCHRONIZED clause is syntax checked only.
*SYNC
The SYNCHRONIZED clause is compiled by the compiler. The SYNCHRONIZED clause causes the position of a data item to be aligned such that the right-hand (least-significant) end is on the natural storage boundary. The natural storage boundary is the next nearest 4-byte, 8-byte, or 16-byte boundary in storage depending on the length and type of data being stored. Extra storage is reserved adjacent to the synchronized item to achieve this alignment. Each elementary data item that is described as SYNCHRONIZED is aligned to the natural storage boundary that corresponds to its data storage assignment.
*NOCRTF
Disk files that are unavailable at the time of an OPEN operation are not created dynamically.
*CRTF
Disk files that are unavailable at the time of an OPEN operation are created dynamically.

Note: The maximum record length for a file that will be created dynamically is 32&rbl.766. Indexed files will not be dynamically created even though the *CRTF option has been specified.

*NODUPKEYCHK
Does not check for duplicate primary and alternate record keys for INDEXED files.
*DUPKEYCHK
Checks for duplicate primary and alternate record keys for INDEXED files.
*NOINZDLT
Relative files with sequential access are not initialized with deleted records during the CLOSE operation if the files have been opened for OUTPUT. The record boundary is determined by the number of records written at OPEN OUTPUT time. Subsequent OPEN operations allow access only up to the record boundary.
*INZDLT
Relative files with sequential access are initialized with deleted records during the CLOSE operation if the files were opened for OUTPUT. Active records in the files are not affected. The record boundary is defined as the file size for subsequent OPEN operations.
*NOBLK
The compiler allows blocking only of SEQUENTIAL access files with no START statement. The BLOCK CONTAINS clause, if specified, is ignored, except for tape files.
*BLK
When *BLK is used and a BLOCK CONTAINS clause is specified, the compiler allows blocking for DYNAMIC access files and SEQUENTIAL access files with a START statement. Blocking is not allowed for RELATIVE files opened for output operations. The BLOCK CONTAINS clause controls the number of records to be blocked.

When *BLK is used and no BLOCK CONTAINS clause is specified, the compiler allows blocking only of SEQUENTIAL access files with no START statement. The operating system determines the number of records to be blocked.

*STDINZ
For those items with no VALUE clause, the compiler initializes data items to system defaults.
*NOSTDINZ
For those items with no VALUE clause, the compiler does not initialize data items to system defaults.
*STDINZHEX00
For those items with no VALUE clause, the compiler initializes data items to hexadecimal zero.
*NODDSFILLER
If no matching fields are found by a COPY DDS statement, no field descriptions are generated.
*DDSFILLER
If no matching fields are found by a COPY DDS statement, a single character FILLER field description, "07 FILLER PIC X", is always created.
*NOIMBEDERR
Error messages are not included in the source listing section of the compiler listing. Error messages only appear in the error message section of the compiler listing.
*IMBEDERR
First level error messages are included in the source listing section of the compiler listing, immediately following the line where the error occurred. Error messages also appear in the error message section of the compiler listing.
*STDTRUNC
This option applies only to USAGE BINARY data. When *STDTRUNC is selected, USAGE BINARY data is truncated to the number of digits in the PICTURE clause of the BINARY receiving field.
*NOSTDTRUNC
This option applies only to USAGE BINARY data. When *NOSTDTRUNC is selected, BINARY receiving fields are truncated only at half-word, full-word, or double-word boundaries. BINARY sending fields are also handled as half-words, full-words, or double-words. Thus, the full binary content of the field is significant. Also, the DISPLAY statement will convert the entire content of a BINARY field, with no truncation.
*NOCHGPOSSGN
Hexadecimal F is used as the default positive sign for zoned and packed numeric data. Hexadecimal F is the system default for the operating system.
*CHGPOSSGN
Hexadecimal C is used as the default positive sign for zoned and packed numeric data. This applies to all results of the MOVE, ADD, SUBTRACT, MULTIPLY, DIVIDE, COMPUTE, and INITIALIZE statements, as well as the results of the VALUE clause.
*NOEVENTF
Do not create an Event File for use by client tooling. Client tooling uses this file to provide integrated error feedback. An Event File is normally created when you create a module or program from within client tooling.
*EVENTF
Create an Event File for use by client tooling. The Event File is created as a member in file EVFEVENT in the library where the created module or program object is to be stored. If the file EVFEVENT does not exist it is automatically created. The Event File member name is the same as the name of the object being created.

Client tooling uses this file to provide integrated error feedback. An Event File is normally created when you create a module or program from within client tooling.

*MONOPIC
The PICTURE character-string is converted to all uppercase characters (monocasing).
*NOMONOPIC
The currency symbol used in the PICTURE character-string is case sensitive. That is, the lowercase letters corresponding to the uppercase letters for the PICTURE symbols A, B, E, G, N, P, S, V, X, Z, CR, and DB are equivalent to their uppercase representations in a PICTURE character-string. All other lowercase letters are not equivalent to their corresponding uppercase representations.
*NOCRTARKIDX
Temporary alternate record key (ARK) indexes are not created if permanent ones cannot be found.
*CRTARKIDX
Temporary alternate record key (ARK) indexes are created if permanent ones cannot be found.

Conversion options (CVTOPT)

Specifies how the compiler handles date, time, and timestamp field types, DBCS field types, variable-length character field types, and floating-point field types passed from externally-described files to your program through COPY DDS. The possible values are:

*NOVARCHAR
Variable-length fields are declared as FILLER fields.
*VARCHAR
Variable-length fields are declared as group items, and are accessible to the ILE COBOL source program.
*NODATETIME
Date, time, and timestamp data types are declared as FILLER fields.
*DATETIME
Date, time, and timestamp DDS data types are given COBOL data item names based on their DDS names. The category of the COBOL data item is alphanumeric, unless one of the CVTOPT parameter values *DATE, *TIME, or *TIMESTAMP is specified. In this case, the category of the COBOL data item is date, time, or timestamp, respectively.
*NOPICXGRAPHIC
DBCS-graphic data types are declared as FILLER fields.
*PICXGRAPHIC
Fixed-length DBCS-graphic data types are declared as fixed-length alphanumeric fields, and are accessible to the ILE COBOL source program.

When the *VARCHAR option is also in use, variable-length DBCS-graphic data types are declared as fixed-length group items, and are accessible to the ILE COBOL source program.

*PICGGRAPHIC
Fixed-length DBCS-graphic data types are declared as fixed-length G-type fields, and are accessible to the ILE COBOL source program.

When the *VARCHAR option is also in use, variable-length DBCS-graphic data types are declared as fixed-length group items (made of a numeric field followed by G type field), and are accessible to the ILE COBOL source program.

*NOPICGGRAPHIC
DBCS-graphic data types are declared as FILLER fields.
*NOFLOAT
Floating-point data types are declared as FILLER fields with a USAGE of binary.
*FLOAT
Floating-point data types are brought into the program with their DDS names and a USAGE of COMP-1 (single-precision) or COMP-2 (double-precision). The fields are made accessible to the ILE COBOL source program.
*NODATE
DDS date data types are declared as category alphanumeric COBOL date items, for example:

06 FILLER PIC X(10).

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*DATE
DDS date data types are declared as category date COBOL data items, for example:

06 FILLER FORMAT DATE '@Y-%m-%d'.

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*NOTIME
DDS time data types are declared as category alphanumeric COBOL data items, for example:

06 FILLER PIC X(10).

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*TIME
DDS time data types are declared as category time COBOL data items, for example:

06 FILLER FORMAT TIME '%H:%M:%S'.

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*NOTIMESTAMP
DDS timestamp data types are declared as category alphanumeric COBOL data items, for example:

06 FILLER PIC X(10).

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*TIMESTAMP
DDS timestamp data types are declared as category timestamp COBOL data items, for example:

06 FILLER FORMAT TIMESTAMP '%H:%M:%S'.

The COBOL data item name is determined by the *NODATETIME/*DATETIME CVTOPT parameter.

*NOCVTTODATE
DDS data types with the DATFMT keyword (excluding the DDS date data type) are declared in ILE COBOL based on their original DDS type.
*CVTTODATE
DDS data types with the DATFMT keyword (excluding the DDS date data type) are declared in ILE COBOL as date data types.
*NOPICNGRAPHIC
DBCS-graphic data types are declared as FILLER fields.
*PICNGRAPHIC
Fixed-length DBCS-graphic data types are declared as fixed-length national data fields, and are accessible to the ILE COBOL source program.

Message limit (MSGLMT)

Specifies the maximum number of messages of a given error severity level that can occur for each compilation unit before compilation stops. As soon as one compilation unit reaches the maximum, compilation stops for the entire source member.

For example, if you specify 3 for the maximum number of messages and 20 for the error severity level then compilation will stop if three or more errors with a severity level of 20 or higher occur. If no messages equal or exceed the given error severity level, compilation continues regardless of the number of errors encountered.

number-of-messages
Specifies the maximum number of messages. The possible values are:
*NOMAX
Compilation continues until normal completion regardless of the number of errors encountered.
maximum-number
Specifies the maximum number of messages that can occur at or above the specified error severity level before compilation stops. The valid range is 0-9999.
message-limit-severity
Specifies the error severity level used to determine whether or not to stop compilation. The possible values are:
30
Compilation stops if the number of errors with severity level 30 or higher exceeds the maximum number of messages specified.
error-severity-level
Enter a one or two-digit number, 0 through 30, which is the error severity level you want to use to determine whether or not to stop compilation. Compilation stops if the number of errors with this severity level or higher exceeds the maximum number of messages you specified.

Debug view option (DBGVIEW)

Specifies options that control which views of the source program or generated listing is available for debugging the compiled program, and if the debug listing view is compressed or not.

debug-view
Specify the views to be available for debugging. The possible values are:
*STMT
The compiled program can be debugged using symbolic names and statement numbers.
*SOURCE
The primary source member as well as copied source members which were included through COPY statements will have source views available for debugging the compiled program. These views are available only if the primary source member and copied source members come from local database source files. Do not change or delete members during the time between compile and debug.
*LIST
A listing view, which shows the source code after the processing of any COPY and REPLACE statements, will be made available for debugging the compiled module. This option increases the size of the compiled module, without affecting the runtime performance of the compiled module.

The listing view will include the cross-reference listing, Data Division map, and verb usage counts when the corresponding compiler options are requested. For example, a cross-reference listing will be included if OPTION(*XREF) is specified.

Listing views can be generated regardless where the primary source members or copied source members come from. Listing views are not affected by changes to or deletion of the source members following the compilation.

*ALL
Equivalent to specifying *STMT, *SOURCE, and *LIST combined.
*NONE
The compiled program cannot be debugged. This reduces the size of the compiled program, but does not affect its runtime performance. When this option is specified, a formatted dump can not be taken.
compress-listing-view
Specifies if the listing view is compressed or not when *LIST or *ALL is specified in debug-view. The possible values are:
*NOCOMPRESSDBG
The listing view is not compressed.
*COMPRESSDBG
The listing view is compressed when *LIST or *ALL is specified in debug-view.

Debug encryption key (DBGENCKEY)

Specifies the encryption key to be used to encrypt program source that is embedded in debug views.

*NONE
No encryption key is specified.
character-value
Specify the key to be used to encrypt program source that is embedded in debug views stored in the module object. The length of the key can be between 1 and 16 bytes. A key of length 1 to 15 bytes will be padded to 16 bytes with blanks for the encryption. Specifying a key of length zero is the same as specifying *NONE.

If the key contains any characters which are not invariant over all code pages, it will be up to the user to ensure that the target system uses the same code page as the source system, otherwise the key may not match and the decryption may fail. If the encryption key must be entered on systems with differing code pages, it is recommended that the key be made of characters which are invariant for all EBCDIC code pages.

Optimize level (OPTIMIZE)

Specifies the level of optimization of the program.

Note: The user can change the optimization level of the module object using the CHGPGM command without having to recompile the source program, unless the *NEVER option value was selected.

The possible values are:

*NONE
No optimization is performed on the compiled program. Compilation time is minimized when this option is used. This option allows variables to be displayed and changed during debugging.
*BASIC
Some optimization (only at the local block level) is performed on the compiled program. This option allows user variables to be displayed but not changed during debugging.
*FULL
Full optimization (at the global level) is performed on the compiled program. This optimization increases compilation time but also generates the most efficient code. This option allows user variables to be displayed but not changed during debugging. The displayed values of the variables may not be their current values. Some variables may not be displayable.
*NEVER
No optimization is performed on the compiled program and its optimization cannot be changed at a later time.

FIPS flagging (FLAGSTD)

Specifies the options for FIPS flagging. (Select the *LINENUMBER option to ensure that the reference numbers used in the FIPS messages are unique.) The possible values are:

*NOFIPS
The ILE COBOL source program is not FIPS flagged.
*MINIMUM
FIPS flag for minimum subset and higher.
*INTERMEDIATE
FIPS flag for intermediate subset and higher.
*HIGH
FIPS flag for high subset.
*NOOBSOLETE
Obsolete language elements are not flagged.
*OBSOLETE
Obsolete language elements are flagged.

Extended display options (EXTDSPOPT)

Specifies the options to use for extended ACCEPT and extended DISPLAY statements for workstation I/O. The possible values are:

*DFRWRT
Extended DISPLAY statements are held in a buffer until an extended ACCEPT statement is encountered, or until the buffer is filled.

The contents of the buffer are written to the display when the extended ACCEPT statement is encountered or the buffer is full.

*NODFRWRT
Each extended DISPLAY statement is performed as it is encountered.
*UNDSPCHR
Displayable and undisplayable characters are handled by extended ACCEPT and extended DISPLAY statements.
*NOUNDSPCHR
Only displayable characters are handled by extended ACCEPT and extended DISPLAY statements.

Although you must use this option for display stations attached to remote 3174 and 3274 controllers, you can also use it for local workstations. If you do use this option, your data must contain displayable characters only. If the data contains values less than hexadecimal 20, the results are not predictable, ranging from unexpected display formats to severe errors.

*ACCUPDALL
All types of data are predisplayed in the extended ACCEPT statements regardless of the existence of the UPDATE phrase.
*ACCUPDNE
Only numeric edited data are predisplayed in the extended ACCEPT statements that do not contain the UPDATE phrase.

Flagging severity (FLAG)

Specifies the minimum severity level of messages that will appear in the compiler listing. The possible values are:

0
All messages will appear in the compiler listing.
severity-level
Enter a one or two-digit number that specifies the minimum severity level of messages that you want to appear in the compiler listing. Messages that have severity levels of this specified value or higher will appear in the compiler listing.

Replace program (REPLACE)

Specifies if a new program is created when a program of the same name in the specified or implied library already exists. The intermediate module objects created during the processing of the CRTBNDCBL command are not subject to the REPLACE specifications, and have an implied REPLACE(*NO) against the QTEMP library. The intermediate module objects are deleted once the CRTBNDCBL command has completed processing. The possible values of the REPLACE parameter are:

*YES
A new program is created and it replaces any existing program of the same name in the specified or implied library. The existing program of the same name in the specified or implied library is moved to library QRPLOBJ.
*NO
A new program is not created if a program of the same name already exists in the specified library. The existing program is not replaced, a message is displayed, and compilation stops.

User profile (USRPRF)

Specifies the user profile that will run the created program object. The profile of the program owner or the program user is used to run the program and control which objects can be used by the program (including the authority the program has for each object). This parameter is not updated if the program already exists. To change the value of USRPRF, delete the program and recompile using the correct value (or, if the constituent *MODULE object(s) exist, you may choose to invoke the CRTPGM command).

The possible values are:

*USER
The user profile of the program user is to be used when the program is run.
*OWNER
The user profiles of both the owner and user of the program are to be used when the program is run. The collective sets of object authorities in both owner and user profiles are to be used to find and access objects during the running of the program object. Any objects that are created when the program is run are owned by the user of the program.

Authority (AUT)

Specifies the authority given to users who do not have specific authority to the program object, who are not on the authorization list, or whose group has no specific authority to the program object. You can change the authority for all users, or for specific users after the program object is created by using the GRTOBJAUT (Grant Object Authority) or RVKOBJAUT (Revoke Object Authority) commands.

The possible values are:

*LIBCRTAUT
The public authority for the object is taken from the CRTAUT keyword of the target library (the library that is to contain the created program object). This value is determined when the program object is created. If the CRTAUT value for the library changes after the program object is created, the new value does NOT affect any existing objects.
*ALL
Provides authority for all operations on the program object except those limited to the owner or controlled by authorization list management authority. The user can control the program object's existence, specify security for it, change it, and perform basic functions on it, but cannot transfer its ownership.
*CHANGE
Provides all data authority and the authority for performing all operations on the program object except those limited to the owner or controlled by object authority and object management authority. The user can change the object and perform basic functions on it.
*USE
Provides object operational authority and read authority; authority for basic operations on the program object. The user can perform basic operations on the object but is prevented from changing the object.

Note: A user must have *USE authority to a program to obtain a formatted dump of the variables of the program. To dump variables, the program must also have observable information.

If you do not want some users to be able to dump the variables, then give them only *OBJOPR plus *EXECUTE authority to the program. This will allow them to call the program but not dump its variables. Use EDTOBJAUT, GRTOBJAUT or RVKOBJAUT to change the authority of the created program.

If you do not want any users to be able to dump the variables, then use Change Program (CHGPGM) to remove the program's observable information.

*EXCLUDE
The user cannot access the program object.
authorization-list-name
The name of an authorization list of users and authorities to which the program is added. The program object is secured by this authorization list, and the public authority for the program object is set to *AUTL. The authorization list must exist on the system when the CRTBNDCBL command is issued. Use the Create Authorization List (CRTAUTL) command to create your own authorization list.

Link literal (LINKLIT)

Specifies the linkage type for external CALL/CANCEL 'literal' target and the SET ENTRY target. You may override this option for specific external CALL/CANCEL 'literal' target and the SET ENTRY target lists by specifying the following sentence in the SPECIAL-NAMES paragraph:

LINKAGE TYPE IS implementer-name FOR target-list.

The possible values for LINKLIT are:

*PGM
Target for CALL/CANCEL or SET ENTRY is a program object.
*PRC
Target for CALL/CANCEL or SET ENTRY is an ILE procedure.

Simple program (SIMPLEPGM)

Specifies if a PGM object is created for each of the compilation units in the sequence of source programs. This option is meaningful only if the input source member to this command contains a sequence of source programs which generate multiple modules. If this option is specified but the input source member does not have a sequence of source programs, then the option is ignored. The possible values are:

*YES
A program object is created for each of the compilation units in the sequence of source programs. If REPLACE(*NO) is specified and a program object of the same name already exists for a compilation unit in the sequence of source programs, that program object is not replaced and compilation continues at the next compilation unit.
*NO
A single program object is created from all the compilation units in the sequence, with the first compilation unit representing the Program Entry. With SIMPLEPGM(*NO) specified, if one source program in a sequence of source programs fails to generate a module then all subsequent source programs in the sequence will also fail to generate modules.

Target release (TGTRLS)

Specifies the release of the operating system on which you intend to use the program object being created. In the examples given for the *CURRENT and *PRV values, and when specifying the target-release value, the format VxRxMx is used to specify the release, where Vx is the version, Rx is the release, and Mx is the modification level. For example, V2R3M0 is version 2, release 3, modification level 0.

Valid values for this parameter change every release. The possible values are:

*CURRENT
The object is to be used on the release of the operating system currently running on your system. For example, if V2R3M5 is running on the system, *CURRENT means that you intend to use the object on a system with V2R3M5 installed. The object can also be used on a system with any subsequent release of the operating system installed.

Note: If V2R3M5 is running on the system, and the object is to be used on a system with V2R3M0 installed, specify TGTRLS(V2R3M0), not TGTRLS(*CURRENT).

*PRV
The object is to be used on the previous release with modification level 0 of the operating system. For example, if V2R3M5 is running on your system, *PRV means you intend to use the object on a system with V2R2M0 installed. The object can also be used on a system with any subsequent release of the operating system installed.
target-release
Specify the release in the format VxRxMx. The object can be used on a system with the specified release or with any subsequent release of the operating system installed.

Valid values depend on the current version, release, and modification level, and they change with each new release. If you specify a target-release that is earlier than the earliest release level supported by this command, an error message is sent indicating the earliest supported release.

Note: The current version of the command may support options that are not available in previous releases of the command. If the command is used to create objects that are to be used on a previous release, it will be processed by the compiler appropriate to that release, and any unsupported options will not be recognized. The compiler will not necessarily issue any warnings regarding options that it is unable to process.

Sort sequence (SRTSEQ)

Specifies the sort sequence used when NLSSORT is associated with an alphabet-name in the ALPHABET clause. The SRTSEQ parameter is used in conjunction with the LANGID parameter to determine which system-defined or user-defined sort sequence table the program object will use. The possible values are:

*HEX
No sort sequence table will be used, and the hexadecimal values of the characters will be used to determine the sort sequence.
*JOB
The sort sequence will be resolved and associated with the program object at compile time using the sort sequence of the compile job. The sort sequence table must exist in the system at compile time. If at run time, the CCSID of the runtime job differs from the CCSID of the compile time job, the sort sequence table loaded at compile time is converted to match the CCSID of the runtime job.
*JOBRUN
The sort sequence of the program will be resolved and associated with the program at run time. At compile time, the compiler will associate the sort sequence of the compile job with the program. At run time, this sort sequence will be replaced by the sort sequence associated with the job at run time. This value allows a program to be compiled once and used with different sort sequences at run time.
*LANGIDUNQ
Specifies that the sort sequence table being used must contain a unique weight for each character in the code page. The sort sequence table used will be the unique weighted table associated with the language specified in the LANGID parameter.
*LANGIDSHR
Specifies that the sort sequence table being used can contain the same weight for multiple characters in the code page. The sort sequence table used will be the shared weighted table associated with the language specified in the LANGID parameter.
table-name
Enter the name of the sort sequence table to be used. The table contains weights for all characters in a given code page. A weight is associated with the character that is defined at the code point. When using a sort sequence table name, the library in which the object resides can be specified. The valid values for the library are:
*LIBL
The library list is searched to find the library where the sort sequence table is located.
*CURLIB
The current library is used. If you have not assigned a library as the current library, QGPL is used.
library-name
Enter the name of the library where the sort sequence table is found.

Language id (LANGID)

Specifies the language identifier which is used in conjunction with the sort sequence. The LANGID parameter is used only when the SRTSEQ value in effect is *LANGIDUNQ or *LANGIDSHR. The possible values are:

*JOBRUN
The language identifier of the program will be resolved at run time. When the compiled program is run, the language identifier of the job is used. This value allows a program to be compiled once and used with different language identifiers at run time.
*JOB
The language identifier of the program will be resolved at compile time.
language-identifier-name
Enter a valid 3-character language identifier.

Enable performance collection (ENBPFRCOL)

Specifies whether performance measurement code should be generated in the module or program. The data collected can be used by the system performance tool to profile an application's performance. Generating the addition of the performance measurement code in a compiled module or program will result in slightly larger objects and may affect performance.

*PEP
Performance statistics are gathered on the entry and exit of the program entry procedure only. Choose this value when you want to gather overall performance information for an application. This support is equivalent to the support formally provided with the TPST tool. This is the default.
*ENTRYEXIT
Performance statistics are gathered on the entry and exit of all the procedures of the program. This includes the program PEP routine.

This choice would be useful if you want to capture information on all routines. Use this option when you know that all the programs called by your application were compiled with either the *PEP, *ENTRYEXIT or *FULL option. Otherwise, if your application calls other programs that are not enabled for performance measurement, the performance tool will charge their use of resources against your application. This would make it difficult for you to determine where resources are actually being used.

*FULL
Performance statistics are gathered on the entry and exit of all procedures. Also statistics are gathered before and after each call to an external procedure.

Use this option when you think that your application will call other programs that were not compiled with either *PEP, *ENTRYEXIT or *FULL. This option allows the performance tools to distinguish between resources that are used by your application and those used by programs it calls (even if those programs are not enabled for performance measurement). This option is the most expensive but allows for selectively analyzing various programs in an application.

Binding directory (BNDDIR)

Specifies the list of binding directories that are used in symbol resolution.

*NONE
No binding directory is specified.
binding-directory-name
Specify the name of the binding directory used in symbol resolution. The directory name can be qualified with one of the following library values:
*LIBL
The system searches the library list to find the library where the binding directory is stored. This is the default.
*CURLIB
The current library for the job is searched. If no library is specified as the current library for the job, library QGPL is used.
*USRLIBL
Only the libraries in the user portion of the job's library list are searched.
library-name
Specify the name of the library to be searched.

Storage model (STGMDL)

Specifies the storage model attribute of the program.

*SNGLVL
The program is created with single-level storage model. When a single-level storage model program is activated and run, it is supplied single-level storage for automatic and static storage. A single-level storage program runs only in a single-level storage activation group.
*TERASPACE
The program is created with teraspace storage model. When a teraspace storage model program is activated and run, it is supplied teraspace storage for automatic and static storage. A teraspace storage program runs only in a teraspace storage activation group.
*INHERIT
The program is created with inherit storage model. When activated, the program adopts the storage model of the activation group into which it is activated. An equivalent view is that it inherits the storage model of its caller. When the *INHERIT storage model is selected, *CALLER must be specified for the Activation group (ACTGRP) parameter.

Activation group (ACTGRP)

Specifies the activation group this program is associated with when it is called.

*STGMDL
If STGMDL(*TERASPACE) is specified, the program will be activated into the QILETS activation group when it is called. Otherwise this program will be activated into the QILE activation group when it is called.
*NEW
When this program is called, it is activated into a new activation group.
*CALLER
When this program is called, it is activated into the caller's activation group.
activation-group-name
Specify the name of the activation group to be used when this program is called.

Profiling data (PRFDTA)

Specifies the program profiling data attribute for the program. Program profiling is an advanced optimization technique used to reorder procedures and code within the procedures based on statistical data (profiling data).

*NOCOL
This program is not enabled to collect profiling data. This is the default.
*COL
The program is enabled to collect profiling data. *COL can be specified only when the optimization level of the module is *FULL.

Note: If you use the BNDDIR parameter to bind additional modules and service programs, these additional objects are not affected when *COL or *NOCOL is specified for the program. The program profiling data attribute for a module is set when the module is created.

Coded character set ID (CCSID)

Specifies the coded character set identifier (CCSID) that records in files, and data associated with LOCALEs, are converted to at run time.

*JOBRUN
The CCSID of the program is resolved at run time. When the compiled program is run, the current job's default CCSID is used.
*JOB
The current job's default CCSID at compile time is used.
*HEX
The CCSID 65535 is used, which indicates that data in the fields is treated as bit data, and is not converted.
coded-character-set-identifier
Specifies the CCSID to be used.

National CCSID (NTLCCSID)

Specifies the national coded character set identifier (NTLCCSID) that will be used for all National data items. The possible values are:

13488
The UCS-2 CCSID 13488 is used for all National data items.
coded-character-set-identifier
The specified CCSID is used for all National data items. The CCSID specified must be UCS-2 compatible, for example UTF-16 CCSID 1200.

Arithmetic mode (ARITHMETIC)

Specifies the arithmetic mode for numeric data. The possible values are:

*NOEXTEND
This option specifies the default arithmetic mode for numeric data. The intermediate result of a fixed-point arithmetic expression can be up to 30 digits and numeric literals may only have a maximum length of 18 digits.
*EXTEND31
Use this option to increase the precision of intermediate results for fixed-point arithmetic. The intermediate result of a fixed-point arithmetic expression can be up to 31 digits and numeric literals may have a maximum length of 31 digits.
*EXTEND31FULL
Use this option to increase the precision of intermediate results for fixed-point arithmetic. Also use this option to get the best precision for numeric intrinsic functions. The intermediate result of a fixed-point arithmetic expression can be up to 34 digits and numeric literals may have a maximum length of 34 digits.
*EXTEND63
Use this option to increase the precision of intermediate results for fixed-point arithmetic. The intermediate result of a fixed-point arithmetic expression can be up to 63 digits and numeric literals may have a maximum length of 63 digits.

Padding character (NTLPADCHAR)

Specifies the national padding character (NTLPADCHAR) used when padding occurs in the following conversion situations:

1. Single byte character to national character.

2. Double byte character to national character.

3. National character to national character.

*DEFAULT
This option specifies the default padding characters as follows:

1. Single byte character to national character (NX"0020")

2. Double byte character to national character (NX"3000")

3. National character to national character (NX"3000")

national hexadecimal literal
Specifies any valid national hexadecimal literal of length 1 in format NX" " or NX' '.

Licensed Internal Code options (LICOPT)

Specifies one or more Licensed Internal Code compile-time options. This parameter allows individual compile-time options to be selected, and is intended for the advanced programmer who understands the potential benefits and drawbacks of each selected type of compiler option.

Include directory (INCDIR)

Specifies one or more directories to add to the search path used by the compiler to find copy files. The compiler will search the directories specified here if the copy files in the source program can not be resolved.

*NONE
No user directories are searched for copy files. By default, the current directory will still be searched.
'directory'
Specify up to 32 directories in which to search for copy files. In addition to the specified directories, the current directory is also searched for copy files.

Program interface information (PGMINFO)

Specifies options controlling whether program interface information should be generated, and where it should be generated.

Generate
Specifies whether program interface information should be generated. The possible values are:
*NO
This option specifies the default which does not generate program interface information.
*PCML
Specifies that PCML (Program Call Markup Language) should be generated. The generated PCML makes it easier for JAVA methods to call the procedure in this COBOL program, with less Java code.
Location
Specifies the location for the generated program information, if the Generate parameter is *PCML. The possible values are:
*STMF
Specifies that the program information should be generated into a stream file. The name of a stream file that will contain the generated information must be specified on the INFOSTMF option.
*MODULE
Specifies that the program information should be stored in the COBOL module.
*ALL
Specifies that the program information should be generated into a stream file and also stored in the module. The name of a stream file that will contain the generated information must be specified on the INFOSTMF option.

Program interface stream file (INFOSTMF)

Specifies the path name of the stream file to contain the generated program interface information specifed on the PGMINFO option.

The path name can be either absolutely or relatively qualified. An absolute path name starts with '/'; a relative path name starts with a character other than '/'.

If absolutely-qualified, the path name is complete. If relatively-qualified, the path name is completed by appending the job's current working directory to the path name.

This parameter can only be specified when the PGMINFO parameter has a value other than *NO.

Examples

Example 1: Compiling a Source Program into a Program Object

CRTBNDCBL   PGM(MYLIB/XMPLE1)  SRCFILE(MYLIB/QCBLLESRC)
            SRCMBR(XMPLE1)  OUTPUT(*PRINT)
            TEXT('My ILE COBOL program')

This command calls the ILE COBOL compiler to create a program named XMPLE1. The source program is in member XMPLE1 of source file QCBLLESRC in library MYLIB. A compiler listing is created.

Error messages

*ESCAPE Messages

LNC9001
Compile failed. &1 not created.
LNC9006
TGTRLS(&1) specified, but compiler is not installed.
LNC9007
The product library is damaged, or the user is not allowed to use it.
LNC9015
TGTRLS(&1) is not valid.