The command-level language translator has a list of options
that you can select from to translate your COBOL, C, C++, PL/I, and
Assembler programs. Each translator option is explained and lists
the languages that you can use it with.
- APOST
- (COBOL only)
- APOST indicates that literals are delineated by the apostrophe or a quotation
mark. QUOTE is the alternative option, which indicates double quotation
marks.
This translator option determines the appropriate value for all delimiters in COBOL source
code, including those in copybooks, CICS® statements and COBOL
literals in the source. Although COBOL allows delimiters in COBOL source code to be apostrophes,
quotation marks, or a mix of both in the same program, if the CICS stand-alone translator is used, then all beginning and ending delimiters in the COBOL
program must match the CICS option specified. Literals
continued across multiple lines must also start and end with the specified delimiter.
Note
that the CICS-supplied COBOL copybooks have a single
quotation mark. If you are using any CICS-supplied copybooks
in your application to interface to a CICS component, ensure
that you use the APOST option, not the QUOTE option, and code the
delimiters in your program accordingly.
- CBLCARD
- (COBOL only) Abbreviation: CBL
- CBLCARD specifies that the translator is to generate a CBL statement.
CBLCARD is the default; the alternative is NOCBLCARD.
The COBOL compiler LIB option is not required for COBOL
Version 5 and later. The compiler options that result from the CBLCARD translator
option do not include the LIB option. When translating source to be processed by
COBOL compilers earlier than Version 5, you must specify the LIB option without
relying on CBLCARD.
-
CICS
-
CICS
specifies that the translator is to process
EXEC
CICS
commands. It is the default specification in the translator.
CICS
is also an old name for the
XOPTS keyword for specifying translator options, which means that
you can specify the
CICS
option explicitly either
by including it in your XOPTS list, or by using it in place of XOPTS
to name the list. The only way to indicate that there are no
CICS
commands is to use the XOPTS
keyword without the option
CICS
. You must do this
in a batch DL/I program using EXEC DLI commands. For example, to
translate
a batch DL/I program written in assembler language, specify:
*ASM XOPTS(DLI)
-
To translate a batch program written in COBOL, containing EXEC
API commands, specify:
CBL XOPTS(EXCI)
- COBOL2
-
(COBOL only) Abbreviation: CO2
-
COBOL2
specifies that the translator is to generate
temporary variables for use in the translated EXEC statements. In
all other respects, the program is translated in the same manner as
with the
COBOL3
option.
COBOL2
and
COBOL3
are
mutually exclusive.
COBOL2
is the default for COBOL.
Note:
If
you specify
COBOL2
and
COBOL3
by
different methods, the
COBOL3
option is always used,
regardless of where the two options have been specified. If you specify
both
COBOL2
and
COBOL3
, the translator
issues a warning message.
- COBOL3
-
(COBOL only) Abbreviation: CO3
-
COBOL3
specifies that the translator is to translate
programs that are Language Environment-conforming.
COBOL3
and
COBOL2
options
are mutually exclusive. For information about which Language
Environment-conforming
compilers are available, see
Programming languages and Language Environment.
- CPP
-
(C++ only)
-
CPP
specifies that the translator is to translate
C++ programs for compilation by a supported C++ compiler.
- CPSM
-
CPSM
specifies that the translator is to process
EXEC CPSM commands. The alternative is
NOCPSM
, which
is the default.
- DBCS
-
(COBOL only)
-
DBCS
specifies that the source program might
contain double-byte characters. The DBCS option causes the translator
to treat hexadecimal codes
X'0E'
and
X'0F'
as shift-out
(SO) and shift-in (SI) codes, respectively, wherever they appear in
the program.
-
For more detailed information about how to program in COBOL using
DBCS, see the section on DBCS character strings in
Enterprise COBOL for z/OS Language Reference.
- DEBUG
-
(COBOL, C, C++, and PL/I only)
-
DEBUG
instructs the translator to produce code
that passes the line number through to
CICS
for
use by the execution diagnostic facility (EDF).
DEBUG
is the default;
NODEBUG
is
the alternative.
- DLI
-
DLI
specifies that the translator is to process
EXEC DLI commands. You must specify it with the
XOPTS
option,
that is,
XOPTS(DLI)
.
- EDF
-
EDF
specifies that the execution diagnostic facility
is to apply to the program.
EDF
is the default; the
alternative is
NOEDF.
- EPILOG
-
(Assembler language only)
-
EPILOG
specifies that the translator is to insert
the macro DFHEIRET at the end of the program being translated.
DFHEIRET returns control from the issuing program
to the program which invoked it. If you want to use any of the
options
of the
RETURN
command, use RETURN and specify
NOEPILOG.
-
EPILOG is the default; the alternative NOEPILOG prevents the
translator from inserting the macro DFHEIRET. (See DFHECALL macro
for programming information about the DFHEIRET macro.)
- EXCI
-
EXCI
specifies that
the translator is to process EXEC API commands for the External
CICS
Interface (EXCI). EXCI API
commands must be used only in batch programs, and so the EXCI translator
option is mutually exclusive to the
CICS
translator
option, or any translator option that implies the
CICS
option.
An error message is produced if both
CICS
and
EXCI are specified, or EXCI and a translator option that implies
CICS
are specified.
-
The
EXCI
option is also mutually exclusive to
the DLI option. EXEC API commands for the External
CICS
Interface cannot be coded in batch programs
using EXEC DLI commands. An error message is produced if both EXCI
and DLI translator commands are specified.
-
The
EXCI
translator option is specified by
XOPTS
,
that is, XOPTS(EXCI).
- FEPI
-
FEPI
allows access to the FEPI API commands of
the
CICS
Front End Programming
Interface (FEPI). The alternative is
NOFEPI
. For
more information about FEPI, see
Developing with the FEPI API.
- FLAG (I, W, E, or S)
-
(COBOL, C, C++, and PL/I only) Abbreviation: F
-
FLAG
specifies the minimum severity of error
in the translation that requires a message to be listed.
- I
- All messages.
- W
- (Default) All except information messages.
- E
- All except warning and information messages.
- S
- Only severe and unrecoverable error messages.
- GDS
-
(C, C++, and assembler language only)
-
GDS
specifies that the translator is to process
CICS
GDS (generalized data stream)
commands. For programming information about these commands, see
CICS API commands.
- GRAPHIC
-
(PL/I only)
-
GRAPHIC
specifies that the source program might
contain double-byte characters. The
GRAPHIC
option
causes the translator to treat hexadecimal codes
X'0E'
and
X'0F'
as
shift-out (SO) and shift-in (SI) codes, respectively, wherever they
appear in the program.
- It also prevents the translator from generating parameter lists
that contain the shift-out and shift-in values in hexadecimal
form.
Wherever these values would ordinarily appear, the translator expresses
them in binary form, so that there are no unintended DBCS
delimiters
in the data stream that the compiler receives.
-
If the compiler you are using supports DBCS, you need to prevent
unintended shift-out and shift-in codes, even if you are not using
double-byte characters. Prevent unintended shift-out and shift-in
codes by specifying the
GRAPHIC
option for the translator,
so that it does not create them, or by specifying
NOGRAPHIC
on
the compile step, so that the compiler does not interpret them as
DBCS delimiters.
- For more detailed information about how to program in PL/I
using
DBCS, see the relevant language reference manual.
- LEASM
-
(Assembler language only)
-
LEASM
instructs the translator to generate code
for a Language Environment-conforming assembler MAIN program.
-
If the
LEASM
option is specified, the DFHEISTG,
DFHEIENT, DFHEIRET, and DFHEIEND macros expand differently to create
a Language Environment-conforming assembler MAIN program, instead
of the form of macro expansion used for assembler subroutines in a
CICS
environment. The
LEASM
option
allows customer programs that have used
NOPROLOG
and
NOEPILOG
and
coded their own DFHEIENT and other macros to take advantage of
Language Environment
support
without changing their program source. For example, all programs that
require more than one code base register are in this category
because
the translator does not support multiple code base registers.
-
For an example of an assembler program translated using the
LEASM
option,
see
Example assembler language program with LEASM.
- LENGTH
-
(COBOL, assembler language and PL/I only)
-
LENGTH
instructs the translator to generate a
default length if the
LENGTH
option is omitted from
a
CICS
command in the application
program. The alternative is
NOLENGTH.
- LINECOUNT(n)
-
Abbreviation: LC
-
LINECOUNT
specifies the number of lines to be
included in each page of translator listing, including heading and
blank lines. The value of
n
must be an integer
in the range 1 through 255; if
n
is less than 5,
only the heading and one line of listing are included on each page.
The default is 60.
- LINKAGE
-
(COBOL only) Abbreviation: LIN
-
LINKAGE
requests the translator to modify the
LINKAGE SECTION and PROCEDURE DIVISION statements in top-level programs
according to the existing rules.
- This means that the translator inserts a USING DFHEIBLK
DFHCOMMAREA
statement in the PROCEDURE DIVISION, if one does not exist, and ensures
that the LINKAGE SECTION (creating one if necessary) contains
definitions
for DFHEIBLK and DFHCOMMAREA.
-
LINKAGE
is the default; the alternative is
NOLINKAGE.
- MAIN
-
(C only)
-
MAIN specifies the program contains a main procedure and so the translator will
include structures and declarations for the CICS API. This is the default.
- MARGINS(m,n[,c])
-
(C, C++, and PL/I only) Abbreviation: MAR
-
MARGINS
specifies the columns of each line or
record of input that contain language or
CICS
statements. The translator does not process
data that is outside these limits, though it does include it in the
source listings.
-
The
MARGINS
option can also specify the position
of an American National Standard printer control character to format
the listing produced when the
SOURCE
option is specified;
otherwise, the input records are listed without any intervening blank
lines. The margin parameters are as follows:
- m
- Column number of left margin.
- n
-
Column number of right margin. It must be greater than m.
Note:
When
used as a C or C++ compiler option, the asterisk (*) is allowable
for the second argument on the
MARGIN
option. For
the translator, however, a numeric value between 1 and 100
inclusive
must be specified. When the input data set has fixed-length
records,
the maximum value allowable for the right margin is 80. When the
input
data set has variable-length records, the maximum value allowable
is 100.
- c
-
Column number of the American National Standard printer control
character. It must be outside the values specified for m and n.
A
zero value for c means no printer control character. If c is
nonzero,
only the following printer control characters can appear in the
source:
- (blank)
- Skip one line before printing.
- 0
- Skip two lines before printing.
- -
- Skip three lines before printing.
- +
- No skip before printing.
- 1
- New page.
- The default for C and C++ is MARGINS(1,72,0) for fixed-length
records, and for variable-length records it is the same as the
record
length (1,record length,0). The default for PL/I is MARGINS(2,72,0)
for fixed-length records, and MARGINS(10,100,0) for variable-length
records.
- NATLANG(EN or KA)
-
NATLANG
specifies which language is to be used
for the translator message output:
- CS
- Simplified Chinese.
- EN
- (Default) English.
- KA
- Kanji.
(Take care not to confuse this option with the NATLANG
API option.)
- NOCBLCARD
- (COBOL only)
- NOCBLCARD specifies that the translator is not to generate a CBL
statement. The compiler options that CICS requires are
specified by the DFHYITVL procedure. Ensure that RENT and NODYNAM are specified.
- NOCPSM
- NOCPSM specifies that the translator is not to process EXEC CPSM commands.
NOCPSM is the default, the alternative is CPSM.
- NODEBUG
- (COBOL, C, C++, and PL/I only)
- NODEBUG instructs the translator not to produce code that passes the line
number through to CICS for use by the execution diagnostic
facility (EDF).
- NOEDF
-
NOEDF specifies that the execution diagnostic facility is not to apply to
the program. There is no performance advantage in specifying NOEDF , but the option
can be useful to prevent commands in well-debugged subprograms appearing on EDF displays.
- NOEPILOG
- (Assembler language only)
- NOEPILOG instructs the translator not to insert the macro DFHEIRET at the
end of the program being translated. DFHEIRET returns control
from the issuing program to the program which invoked it. If you want to use any of the options of
the EXEC CICS RETURN command, use EXEC CICS RETURN and specify
NOEPILOG. NOEPILOG prevents the translator inserting the macro
DFHEIRET. The alternative is EPILOG , which is the default.
- NOFEPI
-
NOFEPI
disallows access to the FEPI API commands
of the
CICS
Front End Programming
Interface (FEPI).
NOFEPI
is the default; the alternative
is
FEPI.
- NOLENGTH
-
(COBOL, assembler language and PL/I only)
-
NOLENGTH
instructs the translator not to generate
a default length if the
LENGTH
option is omitted
from a
CICS
command in the
application program. The default is
LENGTH.
- NOLINKAGE
-
(COBOL only)
-
NOLINKAGE
requests the translator not to modify
the LINKAGE SECTION and PROCEDURE DIVISION statements to supply
missing
DFHEIBLK and DFHCOMMAREA statements, or insert a definition of the
EIB structure in the LINKAGE section.
-
The
NOLINKAGE
option means that you can provide
COBOL copybooks to define a COMMAREA and use the
EXEC CICS
ADDRESS
command.
-
LINKAGE
is the default.
- NOMAIN
-
(C only)
- NOMAIN specifies the program does not contain a main procedure and so the
translator will not include structures for the CICS API. The DFHEIPTR pointer is declared as
external. This allows multiple C programs to be link-edited together.
- NONUM
-
(COBOL only)
-
NONUM
instructs the translator not to use the
line numbers appearing in columns one through six of each line of
the program as the line number in its diagnostic messages and
cross-reference
listing, but to generate its own line numbers.
NONUM
is
the default, the alternative is
NUM.
- NOOPSEQUENCE
-
(C, C++, and PL/I only) Abbreviation: NOS
-
NOOPSEQUENCE
specifies the position of the sequence
field in the translator output records. The default for C and C++
is OPSEQUENCE(73,80) for fixed-length records and
NOOPSEQUENCE
for
variable-length records. For PL/I, the default is OPSEQUENCE(73,80)
for both types of records.
- NOOPTIONS
-
Abbreviation: NOP
-
NOOPTIONS
instructs the translator not to include
a list of the options used during this translation in its output
listing.
- NOPROLOG
-
(Assembler language only)
-
NOPROLOG
instructs the translator not to insert
the macros DFHEISTG, DFHEIEND, and DFHEIENT into the program being
assembled.
These macros
define local program storage and execute at program entry.
- NOSEQ
-
(COBOL only)
-
NOSEQ
instructs the translator not to check the
sequence field of the source statements, in columns 1-6. The alternative,
SEQ
,
is the default. If
SEQ
is specified and a statement
is not in sequence, it is flagged.
- NOSEQUENCE
-
(C, C++, and PL/I only) Abbreviation: NSEQ
-
NOSEQUENCE
specifies that statements in the translator
input are not sequence numbered and that the translator must assign
its own line numbers.
-
The default for fixed-length records is SEQUENCE(73,80). For
variable-length
records in C and C++, the default is
NOSEQUENCE
and
for variable-length records in PL/I, the default is SEQUENCE(1,8).
- NOSOURCE
-
NOSOURCE
instructs the translator not to include
a listing of the translated source program in the translator
listing.
- NOSPIE
-
NOSPIE
prevents the translator from trapping
unrecoverable errors; instead, a dump is produced. Use
NOSPIE
only
when requested to do so by the
IBM®
support
center.
- NOVBREF
-
(COBOL, C, C++ and PL/I only)
-
NOVBREF
instructs the translator not to include
a cross-reference of commands with line numbers in the translator
listing. (
NOVBREF
used to be called NOXREF; for compatibility,
NOXREF is still accepted.)
NOVBREF
is the default,
the alternative is
VBREF.
- NUM
-
(COBOL only)
-
NUM
instructs the translator to use the line
numbers appearing in columns one through six of each line of the program
as the line number in its diagnostic messages and cross-reference
listing. The alternative is
NONUM
, which is the default.
- OPMARGINS(m,n[,c])
-
(C, C++ and PL/I only) Abbreviation: OM
-
OPMARGINS
specifies the translator output margins,
that is, the margins of the input to the following compiler. Normally
these margins are the same as the input margins for the
translator.
For a definition of input margins and the meaning of
m
,
n
,
and
c
, see
MARGINS
. The default
for C and C++ is OPMARGINS(1,72,0) and for PL/I, the default is
OPMARGINS(2,72,0).
-
The maximum
n
value allowable for the
OPMARGINS
option
is 80. The output from the translator is always of a fixed-length
record format.
-
If the
OPMARGINS
option is used to set the output
from the translator to a certain format, it might be necessary to
change the input margins for the compiler being used. If the
OPMARGINS
value
is allowed to default, it is not necessary to change the input
margins
for the compiler being used.
- OPSEQUENCE(m,n)
-
(C, C++, and PL/I only) Abbreviation: OS
-
OPSEQUENCE
specifies the position of the sequence
field in the translator output records. For the meaning of
m
and
n
,
see
SEQUENCE
. The default for C and C++ is OPSEQUENCE(73,80)
for fixed-length records and NOOPSEQUENCE for variable-length
records.
For PL/I, the default is OPSEQUENCE(73,80) for both types of records.
- OPTIONS
-
Abbreviation: OP
-
OPTIONS
instructs the translator to include a
list of the options used during this translation in its output
listing.
- PROLOG
-
(Assembler language only)
-
PROLOG
instructs the translator to insert the
macros DFHEISTG, DFHEIEND, and DFHEIENT into the program being
assembled.
These macros define local program storage and execute
at program entry.
- QUOTE
- (COBOL only) Abbreviation: Q
- QUOTE indicates that literals are delineated by the double quotation mark (”).
The same value must be specified for the translator step and the following compiler step. Although
COBOL allows delimiters in COBOL source code to be apostrophes, quotation marks, or a mix of both in
the same program, if the CICS stand-alone translator is used,
then all beginning and ending delimiters in the COBOL program must match the CICS option specified. Literals continued across multiple lines must also start
and end with the specified delimiter.
Note that the CICS-supplied COBOL copybooks have a single quotation mark. If you are using any CICS-supplied copybooks in your application to interface to a CICS component, ensure that you use the APOST
option, not the QUOTE option, and code the delimiters in your program
accordingly.
- SEQ
-
(COBOL only)
-
SEQ
instructs the translator to check the sequence
field of the source statements, in columns 1-6. SEQ is the default;
the alternative is
NOSEQ
. If a statement is not in
sequence, it is flagged.
- SEQUENCE(m,n)
-
(C, C++, and PL/I only) Abbreviation: SEQ
-
SEQUENCE
specifies that statements in the translator
input are sequence numbered and the columns in each line or record
that contain the sequence field. The translator uses this number as
the line number in error messages and cross-reference listings. No
attempt is made to sort the input lines or records into sequence.
If no sequence field is specified, the translator assigns its own
line numbers. The
SEQUENCE
parameters are:
- m
- Leftmost sequence number column.
- n
- Rightmost sequence number column.
-
The sequence number field must not exceed eight characters and
must not overlap the source program (as specified in the
MARGINS
option).
- The default for fixed-length records is SEQUENCE(73,80). For
variable-length
records in C and C++, the default is NOSEQUENCE and for variable-length
records in PL/I, the default is SEQUENCE(1,8).
- SOURCE
-
Abbreviation: S
-
SOURCE
instructs the translator to include a
listing of the translated source program in the translator listing.
SOURCE
is
the default; the alternative is
NOSOURCE.
- SP
-
SP
must be specified for application programs
that contain special (SP)
CICS
commands
or they are rejected at translate time. These commands are ACQUIRE,
COLLECT, CREATE, DISABLE, DISCARD, ENABLE, EXTRACT, INQUIRE,
PERFORM,
RESYNC, and SET. Theses commands are used by system programmers. For
programming information about these commands, see
System commands.
- SPACE(1 or 2 or 3)
-
(COBOL only)
-
SPACE
indicates the type of spacing to be used
in the output listing:
SPACE(1)
specifies single
spacing,
SPACE(2)
double spacing, and
SPACE(3)
triple
spacing.
SPACE(3)
is the default.
- SPIE
-
SPIE
specifies that the translator is to trap
unrecoverable errors. SPIE is the default; the alternative is
NOSPIE.
- SYSEIB
-
SYSEIB
indicates that the program is to use the
system EIB instead of the application EIB.
The
SYSEIB
option allows programs
to execute
CICS
commands without
updating the application EIB, making that aspect of execution transparent
to the application. Use this option only in special situations
because
it imposes restrictions on the programs using it. A program
translated
with the
SYSEIB
option must:
-
Execute in AMODE(31), because the system EIB is assumed to be
located in
TASKDATALOC(ANY)
storage.
-
Obtain the address of the system EIB using the ADDRESS EIB
command
(if the program is translated with the
SYSEIB
option,
this command automatically returns the address of the system EIB).
-
The use of the
SYSEIB
option implies the use
of the
NOHANDLE
option on all
CICS
commands issued by the program. Commands
can use the
RESP
option as required.
- VBREF
-
(COBOL, C, C++, and PL/I only)
-
VBREF
specifies whether the translator is to
include a cross-reference of commands with line numbers in the translator
listing.
VBREF
used to be called
XREF
,
and is still accepted.)