Trailing-Edge - PDP-10 Archives - BB-J939B-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 2.1  24-Nov-80  [5 pages]


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),   and  VAX  (BLISS-32).   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  2.1
         (this version) and version 1 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


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


You will receive the prompt:


Each command line must include at least one file  specification  which
is  interpreted as the file to be compiled.  The simplest command line


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


In this case, however, because of restrictions  in  TOPS-20  "?"  will
result in the message:

        Data line to be sent to program

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

/C(ODE)*                 Generate object code.

/D(EBUG)                 Generate symbols for  debugging,  emit  debug
                         linkages,  and  disable certain optimizations
                         which might mislead the debugger.

/ER(RS)*                 Report errors to the terminal.

/EXI(T)                  Do not prompt after compilation.

/EXT(ENDED)              Program to run in a  non-zero  section  on  a
                         Model B processor.

/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

/KA(10)                  Assume generated code is to be executed on  a

/KI(10)                  Assume generated code is to be executed on  a

/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".

/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

/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,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


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 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

[end of BLISS.HLP]