Trailing-Edge
-
PDP-10 Archives
-
BB-J939D-BM
-
documents/bliss.hlp
There are 8 other files named bliss.hlp in the archive. Click here to see a list.
BLISS.HLP--Help file for BLISS-36 Version 4 Sep-83 [5 pages]
1.0 INTRODUCTION
BLISS-36 is a BLISS language compiler that runs under TOPS-20 and
generates code for KA, KI, KS, and KL processors. The BLISS system
consists of the BLISS-36 compiler and a collection of BLISS oriented
utilities and documentation.
The BLISS language is designed for the implementation of system
software. It combines the simplicity, transportability and clarity of
high-level languages, with the precision and flexibility of assembly
languages. Special care has been taken so that the BLISS language is
transportable. Compilers are currently available for
DECsystem-10/DECSYSTEM-20 (BLISS-36), VAX (BLISS-32) and PDP-11
(BLISS-16). Each compiler includes machine specific extensions that
may be used as required. The BLISS-36 compiler optimizes greatly and,
generally, resultant programs are comparable in size and speed to
those coded in assembly language.
This summary, as well as other BLISS documents, assumes that the BLISS
compiler and its object time libraries are installed on SYS:; help
files are installed on HLP:; other documentation is installed on DOC:
and all other files are installed on BLI:.
The file DOC:BLISS.DOC, distributed with this release contains:
o Detailed description of the differences between version 4
(this version) and version 3 of BLISS-36
o A list of known bugs in this release
o "Pointers" to other sources of information about BLISS-36 and
its associated utilities
o A list of the major components of the BLISS-36 system
2.0 COMMAND LINE
BLISS uses the COMND JSYS to parse the command line, and so resembles
other TOPS-20 commands in format. To invoke the compiler, run
BLISS.EXE. Assuming that the compiler is on SYS: you may simply type
@BLISS
You will receive the prompt:
BLISS>
Each command line must include at least one file specification which
is interpreted as the file to be compiled. The simplest command line
is:
BLISS>FILENAME
which will cause FILENAME.B36 or FILENAME.BLI to be compiled, and
FILENAME.REL to be created. Since the COMND JSYS is used you may
freely use command completion and the "?" feature.
You may also type the BLISS command line directly to the EXEC like
this:
@BLISS FILENAME
In this case, however, because of restrictions in TOPS-20 "?" will
result in the message:
Data line to be sent to program
3.0 SWITCHES
A listing of the available switches is given below. Defaults are
marked with an asterisk(*). The options for the /FORMAT switch are
described below.
SWITCH DESCRIPTION
/CH(ECK):options Controls whether the compiler gives warnings
about certain conditions in the source code.
The options are: FIELD -- Give a warning if
a structure is accessed with a field name
that was not declared in a FIELD attribute in
its declaration; INITIAL -- Give a warning
if there is a reference to a local variable
whose value is known to be undefined at the
point of reference; OPTIMIZE -- give a
warning if code is deleted because a control
expression can be evaluated at compile time.
REDECLARE -- give a warning if a symbol is
declared within a block with the same name as
a symbol which was known outside the block.
All of these options may be prefixed with
"NO" to suppress them. The default is
/CHECK: (FIELD, INITIAL, OPTIMIZE,
NOREDECLARE).
/CO(DE)* Generate object code.
/CR(OSS-REFERENCE) Specifies whether or not to generate a
cross-reference listing (only relevant when
/LIST is also specified).
/D(EBUG) Generate symbols for debugging, emit debug
linkages, and disable certain optimizations
which might mislead the debugger.
/ERROR-LIMIT:n* Number of compilation errors permitted before
compilation will be automatically terminated.
Default value for "n" is 30 errors.
/ERRS* Report errors to the terminal.
/EXI(T) Do not prompt after compilation.
/EXT(ENDED):option Program to run in a non-zero section on a
Model B processor. The option is:
SECTION-INDEPENDENT -- Produces code that
will run from any section.
/F(ORMAT):options Specify certain options to control the format
of the listing file (see below).
/H(EADER)* Produce a heading on the top of each page of
the listing file including configuration
information.
/KA(10) Assume generated code is to be executed on a
KA-10.
/KI(10) Assume generated code is to be executed on a
KI-10.
/KS(10) Assume generated code is to be executed on a
KS-10. (Synonymous with /KL10).
/KL(10)* Assume generated code is to be executed on a
KL-10 or KL-20.
/LIB(RARY):fs Interpret the source file(s) as a library
source file. The resultant object file is
the precompiled library file that can be
requested from a source program with a
library-declaration. The default file-spec
(fs) name is the same as the source file name
and the default extension is ".L36". Library
files compiled with version 1B or older
compilers must be recompiled using the
current version.
/LIS(TING):fs Produce a listing file. The default
file-spec (fs) name is the same as the source
file. The default extension is ".LST".
/MA(STER-CROSS-REFERENCE):fs Produce a master cross reference file for
use with the BCREF utility. The default
file-spec (fs) name is the same as the source
file. The default extension is ".CRF".
***NOTE**** This is not implemented for
field-test 1 of V4.
/NOxxx Invert the meaning of switch /xxx.
/OB(JECT):fs* Produce an object file and call it "fs". The
default file-spec (fs) name is the same as
the source file. The default extension is
".REL".
/OPTI(MIZE)* Perform full flow analysis.
/OPTL(EVEL):n Specify the degree of optimization. N must
be in the range 0 to 3. Request 3 for
maximum optimization. Default is 2.
/P(AGSIZ):n Specify the number of lines printed on each
page of the listing file. N must be greater
than 20. Default is 52.
/Q(UICK) Requests a "quick" compilation, possibly at
the expense of some optimization.
/SA(FE)* Specifies that the source program is coded in
a "safe" manner, i.e. values of named
variables are changed only by explicit
assignment to the named variable. If /NOSAFE
is specified, the compiler assumes that
indirect assignments invalidate a larger
class of variables.
/ST(ATISTICS) Print routine names on the terminal as they
are compiled.
/TOPS1(0) Produce code to run under TOPS-10.
/TOPS2(0)* Produce code to run under TOPS-20.
/U(NAMES) Produce unique names for own variables and
non-global routine names in the listing file
when it is to be assembled.
/V(ARIANT):n Assign n to be the value of the lexical
function %VARIANT. If not present (default),
zero is assumed. If present and no value is
given, 1 is assumed.
/Z(IP) Optimized for time over space if there is a
choice to be made.
The following are the options that can be given with the /FORMAT
switch. The form of the /FORMAT switch is given by:
/FORMAT:option
or
/FORMAT:(option,option, ...)
A(SSEMBLY) Produce a listing file that can be assembled.
(Some modification may be necessary.)
B(INARY)* Include in the listing file the octal
representation of the binary code generated.
C(OMMENTARY)* Include in the listing file commentary on the
operands of each instruction. Currently,
this consists of a source line number.
E(XPAND) Include the expansion of each macro
invocation. See also the TRACE option.
L(IBRARY) Include a trace identifying the library
accessed by each library-declaration and the
first use of each name whose definition is
obtained from a library file.
NOxxx Invert the meaning of option xxx.
O(BJECT)* List the compiled code. The ASSEMBLY,
SYMBOLIC, BINARY, and COMMENTARY options
determine the format of the compiled code.
R(EQUIRE) Do not modify the listing control counter
(see the SOURCE option) when opening or
closing files specified in a REQUIRE
declaration. In the default case, this
results in not listing each REQUIRE file.
SO(URCE)* Increments the listing control counter. The
initial value of the counter is 1. When the
counter is greater than 0, source is listed.
Require-declarations automatically decrement
the counter for the length of the require
file unless the REQUIRE option is used.
SY(MBOLIC)* List the instructions generated, using as
many program symbols as possible.
T(RACE) Trace macro expansion. This includes the
resulting stream of lexemes produced by
EXPAND.
4.0 ENVIRONMENTS
The BLISS compiler can generate code for a number of different
environments. That is, it can generate code which takes advantage of
special features of a variety of processors (KA10, KI10, KS10 and
KL10) and for either TOPS-10 or TOPS-20. Furthermore, BLISS allows
the user to specify a large variety of routine linkages. Any of these
environmental changes may cause a need for another OTS (operating time
system) or high-level debugger (SIX12). However, in almost all cases,
BLISS will do the right thing automatically. For unusual specialized
situations BLISS requires some help (See DOC:BLISS.DOC for more
details).
[end of BLISS.HLP]