BLISS is a system programming language developed at Carnegie Mellon University (CMU) by W. A. Wulf , D. B. Russell, and A. N. Habermann around 1970. It was perhaps the best known system language until C debuted a few years later. Since then, C became popular and common, and BLISS faded into obscurity.
BLISS is a typeless block - structured programming language based on expressions rather than statements, and includes constructs for exception handling , coroutines , and macros . It does not include a goto statement.
The name is variously said to be short for Basic Language for Implementation of System Software or System Software Implementation Language, Backwards . However, in his 2015 oral history for the Babbage Institute's Computer Security History Project, Wulf claimed that the acronym was originally based on the name "Bill's Language for Implementing System Software." [ 1 ]
The original Carnegie Mellon compiler was notable for its extensive use of optimizations , and formed the basis of the classic book The Design of an Optimizing Compiler .
Digital Equipment Corporation (DEC) developed and maintained BLISS compilers for the PDP-10 , [ 2 ] PDP-11 , [ 2 ] VAX , [ 2 ] DEC PRISM , [ 3 ] MIPS , [ 2 ] DEC Alpha , [ 2 ] and Intel IA-32 , [ 2 ] The language did not become popular among customers and few had the compiler, [ 4 ] but DEC used it heavily in-house into the 1980s; most of the utility programs for the OpenVMS operating system were written in BLISS-32. The DEC BLISS compiler has been ported to the IA-64 and x86-64 architectures as part of the ports of OpenVMS to these platforms. [ 2 ] [ 5 ] The x86-64 BLISS compiler uses LLVM as its backend code generator , replacing the proprietary GEM backend used for Alpha and IA-64.
BLISS has many of the features of other modern high-level languages. It has block structure, an automatic stack, and mechanisms for defining and calling recursive routines ... provides a variety of predefined data structures and ... facilities for testing and iteration ... On the other hand, BLISS omits certain features of other high-level languages. It does not have built-in facilities for input/output, because a system-software project usually develops its own input/output or builds on basic monitor I/O or screen management services ... it permits access to machine-specific features, because system software often requires this. BLISS has characteristics that are unusual among high-level languages. A name ... is uniformly interpreted as the address of that segment rather than the value of the segment ... Also, BLISS is an "expression language" rather than a "statement language". [ 6 ]