Re: Floating point is unnecessary for operating systems: Yes, that's a
big relief for early, small computers without hardware floating point!
But floating point is important for runtime libraries which need to
implement math functions or reading & writing floating point numbers.
IMHO that's work for a system implementation language too, YMMV.
Re: BLISS:
I found it sad, but the newest versions of the BLISS compilers do not
support using it as an expression language. The section bridging pp
978-979 (as published) of Brender's history is:
"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.
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."
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....)
Yes, there is now a BLISS-64 compiler and a MACRO-64 compiler which
generate x86_64 code.
- Aron
Ref:
https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bliss.pdf
On 7/8/24 18:14, Paul Winalski wrote:
...
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.