This document, titled "BLISS Primer Volume 2: Intermediate," by Digital Equipment Corporation (DEC), published in 1978 and 1979, serves as an intermediate-level guide for programmers using the BLISS-16c, BLISS-32, and BLISS-36 compilers. It delves into advanced aspects of the BLISS programming language, focusing on its conceptual framework, practical applications, and development tools.
The primer is structured into several modules, each covering a distinct area:
IF
, WHILE
, INCR
) with statement-based languages and explains how values are determined and utilized.%CHAR
, %CHARCOUNT
, %NAME
, %NUMBER
, %STRING
, %QUOTE
, %UNQUOTE
) that operate on the input stream before compilation, primarily used with conditional macros for string processing and dynamic name construction.CH$PTR
, CH$PLUS
, CH$DIFF
), reading and writing characters (CH$RCHAR
, CH$WCHAR
), moving and initializing strings (CH$MOVE
, CH$COPY
, CH$FILL
), comparing sequences, and performing character translation.STRUCTURE
declaration for defining arbitrary data structures and their accessing algorithms. It also covers the MAP
declaration for associating new access methods with existing storage and the REF
attribute for simplifying indirect references, with examples including VECTOR
and BITVECTOR
types, field selectors, bounds checking, and linked lists.INITIAL
attribute (for modifiable storage) and the PLIT
declaration (for non-modifiable storage), often in conjunction with macros for complex initialization patterns.%IF
, %THEN
, %ELSE
, %FI
directives, based on compile-time expressions and lexical test functions (%NULL
, %DECLARED
, %SWITCHES
, %IDENTICAL
, %BLISS
). It also covers advisory functions for diagnostics (%ERROR
, %WARN
, %INFORM
, %PRINT
) and macro control functions.NOVALUE
routines, the RETURN
keyword, minimizing temporaries, grouping sequential operations, and leveraging CASE
expressions and cross-jumping.PRETTY
(code reformatting), BLSCRF
(cross-referencing), CONDEN
(cross-reference consolidation), CVT10
/CVT11
(BLISS version conversion), and MODULE.BLI
(a standard program template).The document emphasizes that while BLISS offers powerful features for low-level system programming, careful coding practices are necessary to ensure readability, maintainability, and effective optimization by the compiler.
Site structure and layout ©2025 Majenko Technologies