BLISS

From Computer History Wiki
Jump to: navigation, search

The BLISS programming language was created at CMU in 1969. It was a high-level (in form) systems implementation language, which also provided accessibility to low-level aspects of the machine on which it ran. It shared many attributes with its predecessor BCPL, including not having types, and being built around words (unlike its contemporary systems implementation language, C).

It did not have 'goto', but did have rich control flow capabilities, including the ability to terminate multiple levels of any kind of looping constructs (as if C's 'exit' statement took an argument specifying how many levels of loop to terminate). In BLISS, all references to a variable evaluate to the variable's address; for access to the contents, it was necessary to explicitly use the 'contents of' operator ('.') (to again give a C analogy, it's as if all uses of variable names evaluated to pointers to the variables, requiring the programmer to always say '*i' to get or replace the contents of 'i'). There are many other uncommon aspects (such as the 'machop' declaration to include object code in-line), but they will not be listed here.

It was originally intended for use on the PDP-10, and as such, included a number of features intended to provide access to PDP-10 mechanisms, such as variable-width bytes in a PDP-10 word. It was shortly thereafter moved to the PDP-11, forming the BLISS-11 dialect (which was a cross-compiler, as the compiler would not easily fit into a PDP-11 address space); the original became BLISS-10. Because of BLISS's goals of providing access to low-level aspects of the host machine, it required changes for the PDP-11, e.g. the provision of unsigned compares, for use in comparing addresses.

Later, some effort was put into making it possible to write portable code in BLISS; its emphasis on words as the only datatype resulted in several versions for different word lengths: BLISS-16, BLISS-32, BLISS-36,etc.

In 1975, DEC, which had sporadically been using BLISS internally for some years, decided to standardize on it for internal use in programming products; at the time, C had yet to really emerge from Bell, and the only serious competitor in the choice was Pascal. BLISS remained widely used inside DEC for may years, through the VAX and Alpha periods.

External links