- Source: BLISS
- Source: Bliss
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. When C was in its infancy, a few projects within Bell Labs debated the merits of BLISS vs. C.
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."
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, PDP-11, VAX, DEC PRISM, MIPS, DEC Alpha, and Intel IA-32, The language did not become popular among customers and few had the compiler, 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. The x86-64 BLISS compiler uses LLVM as its backend code generator, replacing the proprietary GEM backend used for Alpha and IA-64.
Language description
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".
This means that every construct of the language that is not a declaration is an expression. Expressions produce a value as well as possibly causing an action such as modification of storage, transfer of control, or execution of a program loop. For example, the counterpart of an assignment "statement" in BLISS is, strictly speaking, an expression that itself has a value. The value of an expression can be either used or discarded in BLISS ... Finally, BLISS includes a macro facility that provides a level of capability usually found only in macro-assemblers.
The BLISS language has the following characteristics:
All constants are full word for the machine being used, e.g. on a 16-bit machine such as the PDP-11, a constant is 16 bits; on a VAX computer, constants are 32 bits, and on a PDP-10, a constant is 36 bits.
A reference to a variable is always to the address of that variable. For example, the instruction Z+8 refers to adding 8 to the address of Z, not to its value. If one needs to add 8 to the value of Z, one must prefix the variable with a period; so one would type .Z+8 to perform this function, which adds 8 to the contents of Z.
Assignment is done with the standard = symbol, e.g. Z=8 – which says to create a full-word constant containing 8, and store it in the location whose address corresponds to that of Z. So Z+12=14 (or, alternatively 12+Z=14 though this form is considered bad practice per the BLISS documentation in Digital) places the constant 14 into the location which is 12 words after the address of Z.
Block statements are similar to those of ALGOL: a block is started with a BEGIN statement and terminated with END. As with ALGOL, statements are separated with the semicolon (";"). When a value is computed, it is saved until the next statement terminator – which means that a value can be computed, assigned to a variable, and carried forward to the next statement, if desired. Alternatively, an open parenthesis may be used to begin a block, with the close parenthesis used to close the block. When parentheses are included in an expression, the standard precedence rules are used, in which parenthesized expressions are computed first,
Conditional execution uses the IF expression, which tests a true-false condition, performs alternative actions, and returns a result.
Comparison uses keywords such as EQL for equality (as opposed to overloading the = symbol for the same purpose), GTR for Greater Than, and NEQ for not equal. For example, the following code will assign the absolute value of Z to the address indicated by Q:
Q = (IF .Z GTR 0 THEN .Z ELSE -.Z);
Identifiers (variables and constants) must be declared before use, typically using the OWN keyword. Declaring a variable normally causes the compiler to allocate space for it; when necessary, a variable may be assigned a fixed machine address via the BIND declaration. This feature is primarily used for accessing either machine registers or certain special addresses.
Subroutines in the language are called routines, and are declared with the keyword ROUTINE.
Macros, which allow for text substitution, are declared with the keyword MACRO.
The language supports arrays, which are referred to as structures, and declared with the keyword VECTOR.
The language supports some high-level programming language constructs such as:
Alternative execution paths via the CASE expression
Looping through use of the INCR expression, which is similar to ALGOL's FOR statement
Built-in string functions
Certain automatic data conversions (number to string, etc.)
Source example
The following example is taken verbatim from the Bliss Language Manual:
Versions
BLISS-10
BLISS-11 - a cross compiler for the PDP-11
BLISS-16
BLISS-16C - DEC version of BLISS-11
BLISS-32
BLISS-36
BLISS-64
Common BLISS - portable subset
Notes
References
Wulf, W. A.; Russell, D. B.; Habermann, A. N. (December 1971). "BLISS: A Language for Systems Programming" (PDF). Communications of the ACM. 14 (12): 780–790. doi:10.1145/362919.362936. S2CID 9564255. Also: "BLISS: A Language for Systems Programming". (PostScript)
Wulf, W. A.; Johnson, R. K.; Weinstock, C. B.; Hobbs, S. O.; Geschke, C. M. (1975). The Design of an Optimizing Compiler. New York: Elsevier, ISBN 0-444-00158-1.
Brender, Ronald F. (2002). "The BLISS programming language: a history" (PDF). Software: Practice and Experience. 32 (10): 955–981. doi:10.1002/spe.470. S2CID 45466625.
External links
BLISS Manual at DECUS
Lehotsky, Alan; a post about BLISS at DEC
Madison, Matthew D.; Session notes for "Introduction to BLISS" (PostScript)
= Downloads
=BLISS-10
BLISS-11
BLISS-36
BLISS-11, BLISS-32 and BLISS-64
FreeVMS Portable BLISS for GCC
Bliss is a common noun meaning 'extreme happiness'. It may also refer to:
People
Bliss (name), list of people with the name
Culture
= Literature
=Bliss (novel) (1981), by Peter Carey
Bliss, a 2005 novel by Fiona Zedde
Bliss, a 2005 novel by Danyel Smith
Bliss (short story) (1920), by Katherine Mansfield; republished in:
Bliss (short story collection): and Other Stories (1920) by Katherine Mansfield
= Fictional entities
=Bliss (Marvel Comics), member of the Marvel Comics mutant group The Morlocks
Bliss (Starman), incubus who appeared in the DC Comics series Starman
Bliss (The Powerpuff Girls), a character from the 2016 series The Powerpuff Girls
Dee Bliss, fictional character on the Australian soap Neighbours
Bliss Colby, fictional character of the American prime time soap opera The Colbys
The Bliss, a telepathic ability in the 2009 series V
Blissenobiarella, also known as Bliss, a character in Asimov's Foundation series
Bliss, a fictional hallucinogenic drug in the 2018 video game Far Cry 5
= Film
=Bliss (1917 film), starring Harold Lloyd
Bliss (1985 film), directed by Ray Lawrence, adapted from the Peter Carey novel
Bliss (1997 film), starring Terence Stamp, Sheryl Lee and Craig Sheffer
Bliss (2006 film), aka Fu Sheng, Chinese film produced by Fruit Chan
Bliss (2007 film), aka Mutluluk, directed by Abdullah Oguz, adapted from the Zülfü Livaneli novel
Bliss (2011 film), a biographical film about the early years of New Zealand author Katherine Mansfield
Bliss (2017 film), a Philippine thriller film
Bliss (2019 film), a horror film written and directed by Joe Begos
Bliss (2021 film), a science fiction film written and directed by Mike Cahill
= Television
=Bliss (TV channel), a British music television channel playing classic hits
Bliss, a 1995 British television film written and directed by Les Blair
Bliss (1995 TV series), British ITV series
Bliss (2018 TV series), a 2018 British-American produced television series
Bliss (Canadian TV series), a 2002 Canadian produced dramatic television series that ran from 2002 to 2004
"Bliss" (Star Trek: Voyager), episode from the fifth season
= Music
=Composers
Arthur Bliss, English composer and conductor
Bands
Bliss (British band), an English pop group
Bliss (Danish band), a Danish music band
Jonathan Notley, aka MC Bliss, part of the Australian hip hop group Bliss n Eso
Albums
Bliss (12 Rods album) (1993), by indie rock band 12 Rods
Bliss (Birdbrain album) (1995), the debut album by post-grunge band Birdbrain
Bliss (Vanessa Paradis album) (2000), by French pop singer Vanessa Paradis
Bliss (Nikki Webster album) (2002), the second studio album by Nikki Webster
Bliss (Tone Damli album) (2005), Norwegian singer Tone Damli's first studio album
Bliss (Tech N9ne album) (2023), by American rapper Tech N9ne
The Bliss Album...? (Vibrations of Love and Anger and the Ponderance of Life and Existence) (1993), an album by P.M. Dawn
Bliss! (1973), by Chick Corea, originally called Turkish Women at the Bath
EPs
Bliss, a 2019 EP by Australian musician Kian
Songs
"Bliss" (Th' Dudes song), a 1980 song by New Zealand rock band Th' Dudes
"Bliss" (Tori Amos song), a 1999 song by Tori Amos
"Bliss" (Muse song), a 2001 song by the English rock band Muse
"Bliss" (Mariah Carey song), a song on Mariah Carey's 1999 Rainbow album
"Bliss", song on trio Blaque's Blaque Out album
"Bliss (I Don't Wanna Know)", a song on Hinder's Extreme Behavior album
"Bliss", a Paul Gilbert song from his Burning Organ album
"Bliss", a song by Delirious? from their album Mezzamorphis
"Bliss", a song by Still Remains, from the album Of Love and Lunacy
"Bliss", a song by Phish, from the album Billy Breathes
"Bliss", a song by Alice Peacock
"Bliss", a song by Nelly Furtado on the vinyl version of The Ride
= Other uses in culture
=Bliss (magazine), a UK teen magazine
Bliss (opera), a 2010 opera based on Peter Carey's novel of the same name
Bliss (video game), a 2005 adult computer game
Bliss, a newspaper comic by Harry Bliss
Brands and companies
Bliss (charity), a special care baby charity
Bliss (spa), a spa and retail product company
Bliss, bite-sized chocolates manufactured by The Hershey Company
Bliss, a type of synthetic cannabis
Technology
BLISS, system programming language developed at Carnegie Mellon University
Bliss (photograph), computer wallpaper included with Microsoft Windows XP
Bliss (virus), computer virus that infects Linux systems
BLISS (cryptography), a post-quantum digital signature scheme
Places
= United States
=Bliss, Kentucky
Bliss, Idaho
Bliss, Missouri
Bliss, New York
Bliss, Oklahoma
Bliss Corner, Massachusetts
Bliss Township, Michigan
Fort Bliss, Texas
= Elsewhere
=Bliss (crater), small lunar impact crater that is located just to the west of the dark-floored crater Plato
Bliss Bay, Greenland
Bliss Street, Beirut, Lebanon
Transportation
Bliss (yacht), a superyacht built by Palmer Johnson in 2014
Gradient Bliss, a Czech paraglider design
Bliss (automobile), from the early 1900s
Norwegian Bliss, a cruise ship
Other uses
Bliss (typeface), a font family
Chicago Bliss, a team in the Lingerie Football League
Blissymbols, an ideographic writing system
Bliss bibliographic classification
See also
Ignorance is bliss (disambiguation)
BLIS (disambiguation)
All pages with titles containing Bliss
All pages with titles beginning with Bliss
Kata Kunci Pencarian:
- Bliss (lagu Muse)
- Arthur Bliss
- Lela Bliss
- Alexa Bliss
- Mike Bliss
- Bliss (film 2017)
- Bliss (film 2021)
- Bliss Properti Indonesia
- Zenas Bliss
- Bliss (gambar)
- BLISS
- Bliss
- Bliss (photograph)
- Alexa Bliss
- Fort Bliss
- Ignorance Is Bliss
- Bliss (comics)
- Sister Bliss
- William Bliss
- Bliss House
No More Posts Available.
No more pages to load.