3.1.2 BASIC Command Qualifiers
The following list represents all the BASIC command qual-
ifiers and their defaults available. The SINGLE, DOUBLE,
WORD, and LONG qualifiers are supported for compatibility
with previous versions of BASIC. However, Digital recom-
mends that you use the /TYPE_DEFAULT, /INTEGER_
SIZE, /REAL_SIZE, and /DECIMAL_SIZE qualifiers to set
the default data type and size. A description of each qualifier
follows the list.
Qualifiers marked by an asterisk (
*
) are not sup-
ported by DEC BASIC with the following exception:
/[NO]FLAG[=(DECLINING)]. DEC BASIC does support
the DECLINING option of the /FLAG qualifier but not the
B2COMPATIBLITY or AXPCOMPATIBILITY options.
Qualifiers marked by a double asterisk (
**
) are not supported
by VAX BASIC.
EXAMPLE: Click to display EXAMPLE.
/[NO]ANALYSIS_DATA [ = file specification ]
Remarks
1. SCA must be installed.
2. /ANALYSIS_DATA cannot be used with /ANSI_
STANDARD.
/[NO]ANSI_STANDARD
Remarks
1. DEC BASIC does not support this qualifier.
2. /ANSI_STANDARD cannot be used with /ANALYSIS_
DATA.
/[NO]AUDIT =
8
<
:
str-lit
file specification
9
=
;
/NOAUDIT (default)
Causes the compiler to include a history entry in CDD/Repository
when extracting a CDD/Repository definition. You can specify
either a string literal or a file specification with the /AUDIT
qualifier. If you specify a string literal, BASIC includes it as
part of the history entry. If you specify a file specification,
BASIC includes up to the first 64 lines of the specified file.
When you specify /AUDIT, BASIC also includes the follow-
ing information about the CDD/Repository record extraction
in the history entry:
.
The name of the program module making the extraction
.
The time and date of the extraction
.
A note that access was made by way of a BASIC program
.
A note that the access was an extraction
.
The username and UIC of the process accessing
CDD/Repository
Remarks
1. /NOAUDIT causes the compiler not to include a his-
tory entry in CDD/Repository when extracting a
CDD/Repository definition.
/[NO]CHECK =
8
<
:
[NO]BOUNDS
[NO]OVERFLOW [=(INTEGER,DECIMAL)]
ALL
NONE
9
=
;
/CHECK=(BOUNDS,OVERFLOW) (default)
The /CHECK qualifier causes the compiler to test for arith-
metic overflow and for array references outside array bound-
aries when the program executes.
Remarks
1. In DEC BASIC, specifying /CHECK=NOBOUNDS causes
bounds checking not to be performed on arrays received
by descriptor parameters.
2. /CHECK=NOBOUNDS should only be used for thor-
oughly debugged programs and when execution time
is critical. The program is smaller and runs faster, but
no error is signaled for an array reference outside the
array boundaries. The program may get a memory
management or access violation error at run time.
3. /CHECK=OVERFLOW enables checking for integers and
packed decimal numbers.
4. /CHECK=NOOVERFLOW disables overflow checking.
5. /NOCHECK causes the compiler not to test for arith-
metic overflow and for array references outside array
boundaries when the program executes.
6. /CHECK=ALL is the same as /CHECK=(BOUNDS,
OVERFLOW).
7. /CHECK = NONE is the same as /NOCHECK.
/[NO]CROSS_REFERENCE [ = [NO]KEYWORDS ]
Remarks
1. /CROSS_REFERENCE=KEYWORDS specifies that the
cross-reference listing includes all references to BASIC
keywords.
2. The default for /CROSS_REFERENCE is NOKEYWORDS.
See Chapter 17 for more information about cross-
reference listings.
3. /NOCROSS_REFERENCE specifies that no cross-
reference listing be produced.
/[NO]DEBUG =
8
<
:
[NO]SYMBOLS
[NO]TRACEBACK
ALL
NONE
9
=
;
/DEBUG = (TRACEBACK,SYMBOLS) (default)
Causes the compiler to provide information for the OpenVMS
Debugger and the system run-time error traceback mech-
anism. Neither TRACEBACK nor SYMBOLS affects a
program's executable code. For more information about
debugging, see Chapter 4.
Remarks
1. /NODEBUG causes the compiler to suppress information
for the OpenVMS Debugger and the system run-time
error traceback mechanism.
2. /DEBUG = ALL is the same as /DEBUG = (TRACEBACK,SYMBOLS).
3. /DEBUG = NONE is the same as /NODEBUG.
/DECIMAL_SIZE = ( d,s )
/DECIMAL_SIZE = (15,2) is the default. This default decimal
size applies to all decimal variables for which the total num-
ber of digits and digits to the right of the decimal point are not
explicitly declared. See the DEC BASIC and VAX BASIC for
OpenVMS Systems Reference Manual for more information
about packed decimal numbers.
/[NO]DEPENDENCY_DATA
Remarks
1. A compiled module entity is generated only if CDD/Plus
Version 4.0 or higher or CDD/Repository Version 5.0 or
higher is installed on your system and if your current
CDD$DEFAULT is a CDO-format dictionary.
2. You must specify this qualifier if you want %INCLUDE
%FROM %CDD and %REPORT %DEPENDENCY
directives to establish dependency relationships.
3. /NODEPENDENCY_DATA causes the compiler not to
generate a compiled module entity.
/[NO]DESIGN =
8
<
:
COMMENTS
PLACEHOLDERS
9
=
;
/NODESIGN (default)
Enables Program Design Facility (PDF) processing.
Therefore, if you specify the /DESIGN qualifier on the BASIC
command line, the BASIC compiler recognizes PDF place-
holders and comments as valid program elements.
Remarks
1. DEC BASIC does not support this qualifier.
2. Using /DESIGN=PLACEHOLDERS on DEC BASIC,
causes an -E- level error message.
3. The DEC Language-Sensitive Editor and Source Code
Analyzer must be installed on your system.
4. If you specify the /ANALYSIS_DATA qualifier, the com-
piler includes information about comments and place-
holders in the analysis data file.
5. /DESIGN=COMMENTS enables comment processing.
6. /DESIGN=PLACEHOLDERS enables placeholder pro-
cessing in place of BASIC syntax.
7. If you specify the /DESIGN qualifier but do not select an
option, the default is /DESIGN=(COMMENTS,PLACEHOLDERS);
otherwise, the default is /NODESIGN.
/[NO]DIAGNOSTICS [ = file specification ]
Remarks
1. The DEC Language-Sensitive Editor (LSE) must be
installed.
2. If you do not supply a file specification with the
/DIAGNOSTICS qualifier, the diagnostics file has the
same name as its corresponding source file and the file
type .DIA. All other file specification attributes depend on
the placement of the qualifier in the command. See the
OpenVMS documentation set for more information.
3. /NODIAGNOSTICS specifies that no diagnostics file is
created.
/[NO]FLAG =
8
>
<
>
:
[NO]AXPCOMPATIBILITY
[NO]BP2COMPATIBILITY
[NO]DECLINING
ALL
NONE
9
>
=
>
;
/FLAG = (NODECLINING,NOBP2COMPATIBILITY,NOAXPCOMPATIBILITY)
(default)
Lets you specify whether BASIC warns you about declining
features and compatibility with PDP-11 BASIC-Plus-2 and
DEC BASIC.
Remarks
1. /FLAG = (AXPCOMPATIBILITY) is not supported by
DEC BASIC. In VAX BASIC, it issues a warning message
about VAX BASIC features not supported in DEC BASIC.
2. /FLAG = (BP2COMPATIBILITY) is not supported by
DEC BASIC. In VAX BASIC, it causes the compiler to
send a warning message about declining features and
incompatibility with PDP-11 BASIC-Plus-2.
3. /NOFLAG causes the compiler to issue no warnings
about declining features and compatibility with PDP-11
BASIC-Plus-2.
4. /FLAG = ALL is the same as /FLAG = (BP2COMPATIBILITY,DECLINING,
AXPCOMPATIBILITY).
5. /FLAG = NONE is the same as /NOFLAG.
/INTEGER_SIZE =
8
<
:
BYTE
WORD
LONG
9
=
;
/INTEGER_SIZE = (LONG) (default)
Lets you specify the default size for integer data.
Remarks
1. The default integer size (LONG) applies to all integer
variables whose data type is not explicitly declared. See
the DEC BASIC and VAX BASIC for OpenVMS Systems
Reference Manual for more information about integer
data types.
/[NO]LINES
Remarks
1. In VAX BASIC, if your program contains a RESUME
statement with no target or a reference to the error-
handling function ERL, the compiler overrides NOLINES
and signals ``ERL overrides NOLINE'' or ``RESUME
overrides NOLINE''. Note that the BASIC error reporting
facility is separate from that of system traceback.
2. /NOLINES causes line number information to be un-
available for the ERL function, the RESUME statement
with no target (VAX BASIC only), and the BASIC er-
ror reporter. Specifying /NOLINES makes your program
run faster and reduces program size. However, specifying
/NOLINES causes the following restrictions to be in effect:
.
You cannot use RESUME without a line number
(VAX BASIC only).
.
You cannot use the ERL function.
.
No BASIC line number is given in run-time error
messages.
/[NO]LISTING (= file specification )
Remarks
1. /LISTING = file specification produces a file with an
explicit file specification. Omitting the file specifica-
tion produces a listing file with the same name as its
corresponding source file and a file type of .LIS.
2. All other file specification attributes depend on the place-
ment of the qualifier in the command. See the OpenVMS
User's Manual for more information.
3. /LISTING only controls whether or not the compiler
produces a listing file and is the default in batch mode.
4. /SHOW controls which parts of the listing are produced.
5. /NOLISTING specifies that no source listing file be pro-
duced and is the default at a terminal.
/[NO]MACHINE_CODE
Remarks
1. /MACHINE_CODE specifies that the compiler include a
listing of the compiler-generated object code in the listing
file. In DEC BASIC, if the /LIST qualifier is not specified
as well, /MACHINE is ignored.
2. /NOMACHINE_CODE specifies that the listing file not
include compiler-generated object code.
/[NO]OBJECT
.
If you specify one source file, BASIC generates one object
file.
.
If you specify multiple source files separated by plus signs
(+), BASIC appends the files and generates one object file.
.
If you specify multiple source files separated by commas
(,), BASIC compiles and generates a separate object file
for each source file.
.
You can use both plus signs and commas in the same
command line to produce different combinations of ap-
pended and separated object files.
Remarks
1. /OBJECT = file specification produces an object file with
an explicit file specification. Omitting file specification
causes the compiler to produce an object file having the
same name as its corresponding source file and the file
type .OBJ. All other file specification attributes depend on
the placement of the qualifier in the command. See the
OpenVMS User's Manual for more information.
2. /NOOBJECT suppresses the creation of an object file.
During the early stages of program development, you
may find it helpful to suppress the production of object
files until your source program compiles without errors.
/[NO]OLD_VERSION=CDD_ARRAYS
The /NOOLD_VERSION qualifier causes the compiler to ex-
tract an array from the CDD/Repository with the bounds as
specified in the data definition. For example, Array 2:5 in
CDD/Repository is translated by the compiler to be an array
with a lower bound of 2 and an upper bound of 5.
Remarks
1. /OLD_VERSION=CDD_ARRAYS is provided for compat-
ibility with previous versions of BASIC.
2. CDD/Repository assumes a default lower bound of 1, if
none is specified. Therefore, if no lower bound is spec-
ified, the compiler translates the CDD/Repository array
to have a lower bound of 1. For example, Array 5 in
CDD/Repository is translated by BASIC to be an array
with a lower bound of 1 and an upper bound of 5.
/[NO]OPTIMIZE[=LEVEL= n ]
The following list describes the level options:
Remarks
1. VAX BASIC does not support this qualifier.
2. Specify /NOOPTIMIZE if you specify /DEBUG when
compiling a program. /NOOPTIMIZE expedites and
simplifies the debugging session by putting the machine
code in the same order as the lines in the source pro-
gram. Optimizations can cause unexpected and confusing
behavior in a debugging session.
3. Specifying /OPTIMIZE, the default, usually makes pro-
grams run faster. However, using /OPTIMIZE produces
extra instructions to perform the optimization, which may
result in larger object modules and longer compile times
than the /NOOPTIMIZE qualifier.
4. To speed compilations during program development,
compile with /NOOBJECT qualifier to check syntax, with
/NOOPTIMIZE to check for correct execution, and finally
with /OPTIMIZE for the final check.
/REAL_SIZE =
8
<
:
SINGLE
DOUBLE
GFLOAT
HFLOAT
9
=
;
/REAL_SIZE = SINGLE (default)
Specifies the default size for floating-point data.
Remarks
1. DEC BASIC does not support HFLOAT. If HFLOAT is
specified, the program is compiled but causes an -E-level
error message, and no .OBJ file is produced.
2. The default floating-point size (SINGLE) applies to all
floating-point variables whose size is not explicitly de-
clared.
See the DEC BASIC and VAX BASIC for OpenVMS Systems
Reference Manual for more information about floating-point
data types.
/[NO]ROUND_DECIMAL
The /NOROUND qualifier causes the compiler to truncate
packed decimal numbers rather than round them.
/SEPARATE_COMPILATION
When creating modules for use in an object library, use
/SEPARATE_COMPILATION to minimize the size of the
routines included by the linker as it creates the executable
image. /SEPARATE_COMPILATION also reduces the com-
piler virtual memory requirements when a source contains
several compilation units.
Remarks
1. VAX BASIC does not support this qualifier.
2. /SEPARATE_COMPILATION causes the DEC BASIC
compiler to place each routine in a separate mod-
ule within the output object, which is consistent with
VAX BASIC behavior.
3. /NOSEPARATE_COMPILATION, in most cases, allows
more interprocedural optimizations.
/SCALE = n
Remarks
The /SCALE qualifier is provided for compatibility with ex-
isting programs and with other implementations of BASIC.
Digital recommends that you do not use this feature for new
program development. Accumulated round-off errors can be
better controlled with packed decimal numbers. See the DEC
BASIC and VAX BASIC for OpenVMS Systems Reference
Manual for more information about packed decimal num-
bers.
/[NO]SHOW =
8
>
>
<
>
>
:
[NO]CDD_DEFINITIONS
[NO]ENVIRONMENT
[NO]CROSS
[NO]INCLUDE
[NO]MAP
[NO]OVERRIDE
ALL
NONE
9
>
>
=
>
>
;
/SHOW = (CDD_DEFINITIONS, CROSS,
ENVIRONMENT, INCLUDE, MAP, NOOVERRIDE) (VAX BASIC
default)
/SHOW = (CDD_DEFINITIONS, NOCROSS, ENVIRONMENT,
INCLUDE, NOMAP, NOOVERRIDE) (DEC BASIC de-
fault)
Determines which parts of the compilation listing are created.
Remarks
1. CROSS is not supported by DEC BASIC.
2. In DEC BASIC, the size value for dynamically mapped
arrays is the size of the actual array. In VAX BASIC, the
size value is the size of the descriptors.
3. /LISTING must be specified for /SHOW to be effective.
4. CDD_DEFINITIONS controls whether the translation of
a CDD/Repository record is displayed in the listing.
5. ENVIRONMENT lets you display all defaults that were
in effect when the program was compiled. This is the
compilation listing equivalent of the SHOW command in
the environment.
6. INCLUDE controls whether files accessed with the
%INCLUDE directive are displayed in the listing.
7. MAP determines whether the listing contains an alloca-
tion map. The allocation map lists all program variables,
their size, and their data type.
8. OVERRIDE helps you debug code by disabling the effect
of the %NOLIST directive.
9. /NOSHOW causes the compiler to display only the source
listing.
10. /SHOW = ALL is the same as /SHOW = (CDD_
DEFINITIONS,
ENVIRONMENT,CROSS, INCLUDE,MAP, OVERRIDE).
11. /SHOW = NONE is the same as /NOSHOW.
/SYNCHRONOUS_EXCEPTIONS
The /SYNCHRONOUS_EXCEPTIONS qualifier disables re-
ordering and produces compatible behavior with VAX BASIC.
Use this qualifier for programs that rely on arithmetic ex-
ceptions to occur at precise times during program execution.
Remarks
1. VAX BASIC does not support this qualifier.
/[NO]SYNTAX_CHECK
Remarks
1. DEC BASIC does not support this qualifier.
2. /NOSYNTAX_CHECK causes the compiler to suppress
line-by-line syntax checking. When syntax checking is
disabled, the compiler does not perform syntax checking
until you COMPILE or RUN the program.
/[NO]TIE
Remarks
1. VAX BASIC does not support this qualifier.
2. Specify /TIE to use native, compiled code with shared
translated OpenVMS VAX images, either because the
code calls into a translated OpenVMS VAX image or it is
called from a translated OpenVMS VAX image. If you
specify /TIE, you should link the object module using the
LINK command qualifier /NONATIVE_ONLY.
3. Specifying /NOTIE indicates that your compiled code is
not associated with a translated OpenVMS VAX image.
/TYPE_DEFAULT =
8
<
:
INTEGER
REAL
DECIMAL
EXPLICIT
9
=
;
/TYPE_DEFAULT = REAL (default)
Lets you specify the default data type for numeric variables.
Remarks
1. EXPLICIT specifies that all program variables must
be explicitly declared in DECLARE, EXTERNAL,
COMMON, MAP, or DIM statements.
2. INTEGER, REAL, or DECIMAL specify that only vari-
ables and data which are not explicitly declared default to
integer, real, or packed decimal.
3. INTEGER_SIZE, REAL_SIZE, and DECIMAL_SIZE
cause the compiler to specify the actual size of variables
and data.
/VARIANT = int-const
Lets you specify the value associated with the lexical func-
tion %VARIANT. See Chapter 17 for more information about
VARIANT and the %VARIANT lexical function.
Remarks
1. If /VARIANT is not specified, the default value is 0.
2. If /VARIANT is specified without a value, the default is 1.
/[NO]WARNINGS =
8
>
<
>
:
[NO]WARNINGS
[NO]INFORMATIONALS
[NO]ALIGNMENT (DEC BASIC only)
ALL
NONE
9
>
=
>
;
/WARNINGS = (INFORMATIONAL,WARNINGS) (VAX BASIC
default)
/WARNINGS = (INFORMATIONAL,WARNINGS,NOALIGNMENT)
(DEC BASIC default)
Lets you specify whether BASIC displays informational and
warning error messages.
Remarks
1. Only the /ALIGNMENT option is specific to DEC BASIC.
The other options are supported by both DEC BASIC and
VAX BASIC.
2. /WARNINGS=NOWARNINGS causes the compiler to
display informational errors but not warning errors.
3. /WARNINGS=NOINFORMATIONALS causes the com-
piler to display warning errors but not informational
errors.
4. /NOWARNINGS causes the compiler to suppress any
informational or warning errors.
5. /WARNINGS=ALIGNMENT causes the DEC BASIC
compiler to flag all occurrences of non-naturally aligned
RECORD fields, variables within COMMONs and MAPs,
and RECORD arrays.
6. /WARNINGS=NOALIGNMENT, the DEC BASIC de-
fault, causes the compiler not to issue any warning
messages about unaligned data.
7. /WARNINGS = ALL is the same as /WARNINGS =
(INFORMATIONAL, WARNINGS).
8. /WARNINGS = NONE is the same as /NOWARNINGS.