Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Language description  





2 Source example  





3 Versions  





4 Notes  





5 References  





6 External links  



6.1  Downloads  
















BLISS






العربية
Deutsch
فارسی
Français
עברית
Bahasa Melayu

Norsk bokmål
Português
Suomi
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


BLISS
ParadigmStructured, imperative (procedural)
Designed byW. A. Wulf, D. B. Russell, A. N. Habermann
DeveloperCarnegie Mellon University
First appeared1970; 54 years ago (1970)
Stable release

BLISS-64

Typing disciplineTypeless
ScopeLexical
PlatformPDP-10, PDP-11, VAX, PRISM, MIPS, DEC Alpha, IA-32, IA-64, x86-64
OSCross-platform
Websitepdp-10.trailing-edge.com/bb-m836d-bm/
Dialects
Common BLISS
Influenced by
ALGOL

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.[citation needed]

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 SoftwareorSystem 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.

Language description[edit]

[excessive quote]

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.

— Bliss Language Manual, Digital Equipment Corporation (1987)[6]

The BLISS language has the following characteristics:

Q = (IF .Z GTR 0 THEN .Z ELSE -.Z);

Source example[edit]

The following example is taken verbatim from the Bliss Language Manual:[6]

MODULE E1 (MAIN = CTRL) =
BEGIN
FORWARD ROUTINE
    CTRL,
    STEP;
ROUTINE CTRL =
!+
! This routine inputs a value, operates on it, and
! then outputs the result.
!-
    BEGIN
    EXTERNAL ROUTINE
        GETNUM,     ! Input a number from terminal
        PUTNUM;     ! Output a number to terminal
    LOCAL
        X,          ! Storage for input value
        Y;          ! Storage for output value
    GETNUM(X);
    Y = STEP(.X);
    PUTNUM(.Y)
    END;
ROUTINE STEP(A) =
!+
! This routine adds 1 to the given value.
!-
    (.A+1);
END
ELUDOM

Versions[edit]

Notes[edit]

  1. ^ Wulf, William A. (June 23, 2015). "An Interview with WILLIAM A. WULF OH 477" (PDF) (Interview). Interviewed by Jeffrey R. Yost. Charlottesville, Virginia.
  • ^ a b c d e f g 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.
  • ^ MacLaren, Don (August 27, 1987). "DECWest Compiler Project, Description, and Plan" (PDF). Bitsavers.org.
  • ^ da Cruz, Frank (16 September 1987). "News about Kermit Programs for VAX/VMS". Info-Kermit Digest (Mailing list). Kermit Project, Columbia University. Retrieved 5 May 2019. Kermit-32 is written in the Bliss language, DEC's "corporate implementation language" (originally developed at CMU). Bliss never gained popularity among DEC's customers; few sites have Bliss compilers.
  • ^ "2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"". YouTube. 31 October 2017. Archived from the original on 2021-12-21.
  • ^ a b Bliss Language Manual, Digital Equipment Corporation (1987)
  • References[edit]

    External links[edit]

    Downloads[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=BLISS&oldid=1153553619"

    Categories: 
    Systems programming languages
    OpenVMS software
    Carnegie Mellon University software
    Programming languages
    Programming languages created in 1970
    Hidden categories: 
    All articles with unsourced statements
    Articles with unsourced statements from February 2015
    Wikipedia articles with style issues from June 2020
    All articles with style issues
    Articles with specifically marked weasel-worded phrases from July 2022
     



    This page was last edited on 7 May 2023, at 02:14 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki