"The expression language characteristic was often highly touted in the early years of BLISS. While there is a certain conceptual elegance that results, in practice this characteristic is not exploited much.Another thing that I always liked (but is still there) is the ease of accessing bit fields with V<FOO_OFFSET, FOO_SIZE> which was descended from BLISS-10's use of the PDP-10 byte pointers. [Add a dot before V to get an rvalue.] (Well, there was this logic simulator which really packed data into bit fields of blocks representing gates, events, etc....)
The most common applications use the if-then-else expression, for example, in something like the maximum calculation illustrated in Figure 5. Very occasionally there is some analogous use of a case expression. Examples using loops (taking advantage of the value of leave), however, tend not to work well on human factors grounds: the value computed tends to be visually lost in the surrounding control constructs and too far removed from where it will be used; an explicit assignment to a temporary variable often seems to work better.
On balance, the expression characteristic of BLISS was not terribly important."
...BLISS is also a true, full-blown expression language. Statement constructs such as if/then/else have a value and can be used in expressions. In C terminology, everything in BLISS is a lvalue. A semicolon terminates an expression and throws its value away....DEC used four dialects of BLISS as their primary software development language: BLISS-16, BLISS-32, BLISS-36, and BLISS-64 the numbers indicating the BLISS word size in bits. BLISS-16 targeted the PDP-11 and BLISS-36 the PDP-10. DEC did implementations of BLISS-32 for VAX, MIPS, and x86. BLISS-64 was targeted to both Alpha and Itanium. VSI may have a version of BLISS-64 that generates x86-64 code.
-Paul W.