Invokes the VSI BASIC for OpenVMS I64 compiler.
Format:
BASIC [/command-qualifier]... {source-file [/file-qualifier]... }...
When you supply one or more file specifications, the compiler compiles the
source file(s).
If you separate source file specifications with commas, the compiler
compiles each module separately and produces multiple object files. If you
separate source file specifications with plus signs (+), the compiler
appends the files and produces a single object file.
1 – Release notes
The release notes for the current version of VSI BASIC for OpenVMS I64 are
in the file BASIC018.RELEASE_NOTES which resides in SYS$HELP.
You can also access the release notes from the BASIC help file at the DCL
command level with the following command:
$ HELP/LIBRARY=BASICHELP RELEASE_NOTES
2 /ANALYSIS_DATA
The /ANALYSIS_DATA qualifier controls the creation of a file containing
data analysis information for use by the DECset Source Code Analyzer for
OpenVMS systems (SCA).
The format of the /ANALYSIS_DATA qualifier is as follows:
/[NO]ANALYSIS_DATA[=file-spec]
The file created by the /ANALYSIS_DATA qualifier has a default file type
of .ANA. SCA uses the .ANA file to display cross-reference information
and analyze source code.
The default is /NOANALYSIS_DATA.
3 /ARCHITECTURE
The /ARCHITECTURE qualifier specifies which version of the architecture to
generate instructions for.
The format of the /ARCHITECTURE qualifier is as follows:
/ARCHITECTURE={GENERIC }
{HOST }
{MERCED }
{ITANIUM2}
where:
GENERIC generate instructions that are appropriate for all
processors. This option is the default.
HOST generate instructions for the processor that the
compiler is running on.
The default is /ARCHITECTURE=GENERIC.
4 /AUDIT
The /AUDIT qualifier causes the compiler to include a history entry in
CDD/Repository when extracting a CDD/Repository definition.
The format of the /AUDIT qualifier is as follows:
/[NO]AUDIT[={str-lit }]
{file-spec}
where:
str-lit is a quoted string.
file-spec is a file specification.
If you specify a quoted string, the compiler includes it as part of the
history entry. If you specify a file specification, the compiler includes
up to the first 64 lines of the specified file.
When you specify /AUDIT, the compiler also includes the following
information about a CDD/Repository record extraction in the history entry:
o The name of the program module making the extraction
o The time and date of the extraction
o A note that access was made by way of a VSI BASIC for OpenVMS I64
program
o A note that the access was an extraction
o The username and UIC of the process accessing CDD/Repository
The default is /NOAUDIT.
5 /CHECK
The /CHECK qualifier causes the compiler to generate code to test for
arithmetic overflow and for array references outside array boundaries when
the program executes.
The format of the /CHECK qualifier is as follows:
/[NO]CHECK[=({[NO]BOUNDS },...)]
{[NO]OVERFLOW[=([NO]INTEGER,[NO]DECIMAL)]}
{ALL }
{NONE }
where:
BOUNDS checks array subscripts to ensure that they are within
array boundaries specified by the program.
OVERFLOW enables the detection of arithmetic overflow for integer
and packed decimal operations.
The /CHECK qualifier specifies that both OVERFLOW and BOUNDS checking are
performed. The /NOCHECK qualifier specifies that no checking is
performed. If you specify /CHECK=OVERFLOW, overflow checking is enabled
for both integers and packed decimal numbers. Similarly, specifying
/CHECK=NOOVERFLOW disables overflow checking for both types of numbers.
Specifying /CHECK=NOBOUNDS means that your program is smaller and runs
faster. However, no error is signaled for an array reference outside the
bounds of an array. This means that the program may get a memory
management or access violation error at run time. Therefore, this option
should be used only for programs that have been thoroughly debugged and
whose execution time is critical.
The default is /CHECK = (BOUNDS, OVERFLOW).
6 /CROSS_REFERENCE
The /CROSS_REFERENCE qualifier causes the compiler to generate a
cross-reference listing.
The format of the /CROSS_REFERENCE qualifier is as follows:
/[NO]CROSS_REFERENCE[=[NO]KEYWORDS]
The cross-reference listing shows program symbols, their class, and the
program lines in which they are referenced. The /CROSS_REFERENCE=KEYWORDS
qualifier specifies that the cross-reference listing includes all
references to VSI BASIC keywords. /CROSS_REFERENCE is the same as
/CROSS_REFERENCE = NOKEYWORDS.
The /NOCROSS_REFERENCE qualifier suppresses the creation of a
cross-reference listing. See the HP BASIC for OpenVMS Alpha and VAX
Systems User Manual for more information on cross reference listings.
The default is /NOCROSS_REFERENCE.
7 /DEBUG
The /DEBUG qualifier causes the compiler to provide information for the
OpenVMS Debugger and the system run-time error traceback mechanism.
Neither TRACEBACK nor SYMBOLS affects a program's executable code.
The format of the /DEBUG qualifier is as follows:
/[NO]DEBUG[=({[NO]SYMBOLS },...)]
{[NO]TRACEBACK}
{ALL }
{NONE }
where:
SYMBOLS causes the compiler to provide the debugger with local
symbol definitions for user-defined variables (including
dimension information for arrays).
TRACEBACK causes the compiler to provide an address correlation
table so the debugger and the run-time error traceback
mechanism can translate absolute addresses into source
program routine names and line numbers.
The /NODEBUG qualifier causes the compiler to suppress information for the
OpenVMS Debugger and the system run-time error traceback mechanism.
For more information on debugging, see the HP BASIC for OpenVMS Alpha and
VAX Systems User Manual.
The default is /DEBUG = (TRACEBACK, NOSYMBOLS).
8 /DECIMAL_SIZE
The /DECIMAL_SIZE qualifier lets you specify the default size for packed
decimal data. You specify the total number of digits in the number and
the number of digits to the right of the decimal point.
The format of the /DECIMAL_SIZE qualifier is as follows:
/DECIMAL_SIZE=(d,s)
where:
d is the total number of digits in the number.
s is the number of digits to the right of the decimal
point.
The default decimal size applies to all decimal variables for which the
total number of digits and digits to the right of the decimal point are
not explicitly declared. See the HP BASIC for OpenVMS Alpha and VAX
Systems Reference Manual for more information about packed decimal
numbers.
The default is /DECIMAL_SIZE = (15, 2).
9 /DEPENDENCY_DATA
If you have CDD/Repository V5.4 installed on your system and if your
current CDD$DEFAULT is a CDO-format dictionary, you can use the
/DEPENDENCY_DATA qualifier to generate a compiled module entity in the
CDD$DEFAULT for each compilation unit.
The format of the /DEPENDENCY_DATA qualifier is as follows:
/[NO]DEPENDENCY_DATA
You must specify this qualifier if you want %INCLUDE %FROM %CDD and
%REPORT %DEPENDENCY directives to establish dependency relationships.
If /NODEPENDENCY_DATA is specified, the compiler does not generate a
compiled module entity.
The default is /NODEPENDENCY_DATA.
10 /DIAGNOSTICS
The /DIAGNOSTICS qualifier controls the creation of a diagnostics file
containing messages and diagnostic information for use by the Compaq
Language-Sensitive Editor (LSE).
The format of the /DIAGNOSTICS qualifier is as follows:
/[NO]DIAGNOSTICS[=file-spec]
LSE uses the diagnostics file to display diagnostic error messages and to
position the cursor on the line and column where a source error exists.
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 a default file type of .DIA. All other file specification attributes
depend on the placement of the qualifier in the command.
The default is /NODIAGNOSTICS.
11 /DOUBLE
The /DOUBLE qualifier specifies that floating-point variables are double precision. This qualifier is present for compatibility with HP BASIC for OpenVMS VAX. You should use the /REAL_SIZE qualifier to specify the precision of floating-point variables.
12 /FLAG
The /FLAG qualifier lets you specify whether the compiler informs you
about declining features.
The format of the /FLAG qualifier is as follows:
/[NO]FLAG[=[NO]DECLINING]
The /NOFLAG qualifier suppresses any warning messages about declining
features.
/FLAG is the same as /FLAG = NODECLINING.
The default is /NOFLAG.
13 /INTEGER_SIZE
The /INTEGER_SIZE qualifier lets you specify the default size for integer
data.
The format of the /INTEGER_SIZE qualifier is as follows:
/INTEGER_SIZE={BYTE}
{WORD}
{LONG}
{QUAD}
The default integer size applies to all integer variables whose data type
is not explicitly declared. See the HP BASIC for OpenVMS Alpha and VAX
Systems User Manual for more information about integer data types.
The default is /INTEGER_SIZE = LONG.
14 /LINES
The /LINES qualifier makes line number information available for the ERL
function, and the BASIC error reporter.
The format of the /LINES qualifier is as follows:
/[NO]LINES
Note that if ERL (or RESUME) is found in a program that is compiled
/NOLINES, HP BASIC for OpenVMS Alpha will not produce the message, but
will silently turn on /LINES.
If you specify /NOLINES, your program runs faster.
The default is /NOLINES.
15 /LISTING
The /LISTING qualifier causes the compiler to create a source listing
file.
The format of the /LISTING qualifier is as follows:
/[NO]LISTING[=file-spec]
To create a listing file with an explicit file specification, you must use
the /LISTING qualifier in the form /LISTING = file-spec. Otherwise, the
listing file has the same name as its corresponding source file and a file
type of .LIS. All other file specification attributes depend on the
placement of the qualifier in the command.
Note that the /LISTING qualifier only controls whether or not the compiler
produces a listing file. The /SHOW qualifier controls which parts of the
listing are produced.
The default is /NOLISTING from a terminal, and /LISTING in batch mode.
16 /LONG
The /LONG qualifier specifies that integer variables are LONG. This qualifier is present for compatibility with HP BASIC for OpenVMS VAX. You should use the /INTEGER_SIZE qualifier to specify the precision of integer variables.
17 /MACHINE_CODE
The /MACHINE_CODE qualifier controls whether the listing file contains a
list of compiler generated machine code.
The format of the /MACHINE_CODE qualifier is as follows:
/[NO]MACHINE_CODE
The /MACHINE_CODE qualifier has no effect unless you also specify the
/LISTING qualifier. If you specify the /MACHINE_CODE qualifier with the
/OPTIMIZE qualifier, the machine code listing may not reflect the actual
code executed for a given statement nor the order of execution.
The /NOMACHINE_CODE qualifier suppresses compiler generated machine code
in the listing file.
The default is /NOMACHINE_CODE.
18 /OBJECT
The /OBJECT qualifier causes the compiler to produce an object module, and
optionally specifies its file name.
The format of the /OBJECT qualifier is as follows:
/[NO]OBJECT[=file-spec]
By default, the compiler generates object files as follows:
o If you specify one source file, the compiler generates one object
file.
o If you specify multiple source files separated by plus signs, the
compiler appends the files and generates one object file.
o If you specify multiple source files separated by commas, the compiler
compiles and generates a separate object file for each source file.
o You can use both plus signs and commas in the same command line to
produce different combinations of appended and separated object files.
To produce an object file with an explicit file specification, you must
use the /OBJECT qualifier, in the form /OBJECT=file-spec. Otherwise, the
object file has the same name as its corresponding source file, and a file
type of .OBJ. All other file specification attributes depend on the
placement of the qualifier in the command.
The /NOOBJECT qualifier 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.
The default is /OBJECT.
19 /OLD_VERSION
The /OLD_VERSION qualifier is provided for compatibility with early
versions of HP BASIC for OpenVMS VAX.
The format of the /OLD_VERSION qualifier is as follows:
/[NO]OLD_VERSION[=CDD_ARRAYS]
When you use the /OLD_VERSION qualifier, the compiler changes the lower
bound to zero and adjusts the upper bound of the array. For example,
Array 2:5 in CDD/Repository is translated by the compiler to be an array
with a lower bound of 0 and an upper bound of 3. The compiler issues an
informational message to confirm the array bounds.
The /NOOLD_VERSION qualifier causes the compiler to extract an array from
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.
CDD/Repository assumes a default lower bound of 1, if none is specified.
Therefore, if no lower bound is specified, the compiler translates the
CDD/Repository array to have a lower bound of 1. For example, Array 5 in
CDD/Repository is translated by the compiler to be an array with a lower
bound of 1 and an upper bound of 5.
The default is /NOOLD_VERSION.
20 /OPTIMIZE
The /OPTIMIZE qualifier controls whether the compiler optimizes the
program to generate more efficient code for optimum run-time performance.
The format of the /OPTIMIZE qualifier is as follows:
/[NO]OPTIMIZE[=({LEVEL=n },...)]
{TUNE={GENERIC}}
{HOST }
where:
LEVEL=n controls the amount of optimization performed.
/OPTIMIZE=LEVEL=4 is the equivalent of /OPTIMIZE.