HeadlinesBriefing favicon HeadlinesBriefing.com

BLISS Programming Language History and Design

Hacker News •
×

BLISS emerged from Carnegie Mellon University around 1970 as a system programming language designed by W. A. Wulf, D. B. Russell, and A. N. Habermann. It dominated systems work until C appeared, then faded despite technical sophistication. The language is typeless and block-structured, built on expressions rather than statements — a design that eliminates goto while supporting exception handling, coroutines, and macros. Its most unusual trait: every name denotes an address, not a value. To read a variable's contents, you prefix it with a dot (.Z), while Z alone means the address of Z. Constants always match the machine word size — 16 bits on PDP-11, 32 on VAX, 36 on PDP-10.

Digital Equipment Corporation adopted BLISS heavily, building compilers for PDP-10, PDP-11, VAX, PRISM, MIPS, DEC Alpha, IA-32, IA-64, and x86-64. The CMU compiler's aggressive optimizations became the textbook case in *The Design of an Optimizing Compiler*. Most OpenVMS utilities were written in BLISS-32, and DEC used it in-house through the 1980s. The modern x86-64 compiler swapped the proprietary GEM backend for LLVM.

Dialects proliferated: BLISS-10, BLISS-11, BLISS-16, BLISS-32, BLISS-36, and 64-bit variants for Alpha, Itanium, and x86-64. Yet the language never escaped DEC's walls. Its expression-oriented syntax and address-first semantics demanded a mental model too distant from ALGOL-derived languages. C won by being simpler, portable, and close to the machine without requiring a new way to think about variables.