5 ms·
Bliss: A language for systems programming (1971) [pdf]
- leed25d 6y agoI was a Bliss programmer for several years in the mid-1970s. It remains one of my favorite programming languages.
- wglb 6y agoWhat did you use it for?
- leed25d 6y agoI was employed by a defense contractor working on submarine detection systems.
- forgotpwd16 6y ago>It remains one of my favorite programming languages. Any reason for that?
- leed25d 6y agoI like that it is a block structured language without a goto. It has pass-by-value and pass-by-reference semantics. It has a macro front-end that I wish was in use in more modern environments.
- dang 6y agoAn article about its history was posted a couple times (without comments): https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bliss.pdf https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bl...
- neilv 6y agoAs an intern the '90s, I was porting some Unix workstation embedded systems tool to the VAXstation, and was surprised to find the system API documentation I needed wasn't written for C, but for BLISS. Fortunately, VAX C could still call it. I've used a lot of different systems thus far, but what I saw of the DEC VAX/VMS ecosystem was impressive, and a very different cultural flavor than Unix-descended systems. I'm all about the Linux and *BSD now, but, occasionally, I have to resist the urge to buy a small VAX, just to explore more of the clever and different things they did.
- cptnapalm 6y agoSIMH is a thing. https://en.wikipedia.org/wiki/SIMH https://en.wikipedia.org/wiki/SIMH
- neilv 6y agoThanks! They also link to this writeup, which someday I might attempt to reproduce: http://www.wherry.com/gadgets/retrocomputing/vax-simh.html http://www.wherry.com/gadgets/retrocomputing/vax-simh.html
- pjmlp 6y agoThankfully some of its soul lives on Windows.
- valenciarose 6y agoBliss is Ignorance Actually it was a very nice language and certainly an improvement over writing system software in assembly language.
- ThomasBHickey 6y agoBeing able to embed assembly instructions directly in the code gave much needed access to all the PDP-10 byte manipulation instruction. I loved BLISS, but some had trouble with the pesky dots needed to indicate value of rather than addresses of variables. Used it for a couple of years in the mid '70s before moving on to SAIL.
- valenciarose 6y agoOh, I have fond memories of 36-bit byte pointers. My first two programming jobs were in PDP-10/20 Assembly. Occasionally someone will complain about network specs that say octet instead of byte. And I‘ll just casually say, well some machines had variable byte sizes and go back to what I was doing, waiting for them to start sputtering.
- wglb 6y agoHi. The only place I have seen equivalent instructions are in Common Lisp
- msla 6y ago> And I‘ll just casually say, well some machines had variable byte sizes and go back to what I was doing, waiting for them to start sputtering. Maybe make a remark about word marks, or decimal machines. Are you sufficiently sputtered yet?
- 082349872349872 6y agoWord marks, as in the Can't Add Doesn't Even Try? https://en.wikipedia.org/wiki/IBM_1620 https://en.wikipedia.org/wiki/IBM_1620
- CliffStoll 6y agoYep, sends me back almost a half century (gadzooks, am I really 70 years old?). PDP-11/40 and DECUS days. So often I heard the phrase, "Bliss is ignorance..."
- donut 6y agoHi Cliff. What did you use BLISS for? Low level system stuff, or codes for astronomy?
- vogelke 6y agoNot Cliff, but I remember BLISS from early '80s Air Force work. It's the only thing I know that could beat compiled Fortran for things like signal processing. That code absolutely flew.
- CliffStoll 6y agoOh, I did system work with BLISS - I was trying to connect a PDP-11 to a set of motors (which controlled a small telescope). Much later, I used BLISS on a VAX/780 at Space Telescope Science Institute - making an image editor interface into VMS. Long time ago!
- wglb 6y agoWe used Bliss 36 back in late 70s to write a compiler for an in house language called Syclops. It was a knockoff of PL/M for the 8085. Bliss was a very interesting language with features that no other language has. We started the compiler effort on OS\360 using PL/1. We then moved to Bliss 36 on the PDP 10. Oh and we changed the Syclops language twice. The three of us did the compiler in a year. That was one of my favorite projects
- tjchear 6y agoWhat were those features that no other language has?
- tjalfi 6y agoBliss macros[0] are pretty powerful for an infix language. I'm not sure how they compare to macros in newer languages such as Dylan, D, or Rust. [0] https://compilers.iecc.com/comparch/article/92-09-191 https://compilers.iecc.com/comparch/article/92-09-191
- wglb 6y agoNative ability to define fields within a word, macros, use of period (dot) to dereference pointers, arbitrary representations of data structures (the programmer defines the method of access of structure elements), everything is an expression, native co-routines (which can be marvelous in building co-operating processes), some control over register allocation policy (useful for interfacing with other non Bliss-programs), the idea of "plit" (pointer to a literal) which points to literals not constrained by word boundaries, built-in functions that map directly to PDP 10 instructions. [Edit] A good overall description is here: https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bliss.pdf https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bl...
- pjmlp 6y agoModula-2 also has native co-routines and was how Lilith did multi-tasking. How Ada tasks work depend on the runtime configuration, one of them is just like co-routines. Using the dot for pointer access is a common feature in the Algol linage of systems programming languages, including Modula-3, Oberon and its descendents, Component Pascal, Active Oberon. Burroughs with ESPOL/NEWP is known for being the first OS written without any Assembly back in 1961, given that all CPU instructions were exposed as compiler intrisics. So not all those features were BLISS only. :)
- Stratoscope 6y agoThe thing that blew my mind when I started programming with BLISS in the mid-70s was that it didn't have the artificial distinction between statements and expressions that nearly every other language of the day had - and most languages still have. In BLISS, everything was an expression and returned a value, much like Ruby today.
- ngvrnd 6y agoFirst job out of college was coding in BLISS for automated test equipment at Teradyne. A very interesting language with a powerful macro facility, and as others have pointed out, expression semantics for almost everything. Another quirk was the requirement to dereference pointers in all circumstances with the . operator.
- nicoburns 6y ago> expression semantics for almost everything. I've never understood why languages don't do this. There seem to be lots of advantages and almost no disadvantages.
- _8ljf 6y agoC. The popularity and mindshare of C means most languages of the last 50 years have selectively evolved to be C knockoffs. A pity Bliss wasn’t their role model instead, but that’s the value of market positioning: you don’t need the best product, just the product that everyone knows.
- pjmlp 6y agoAnd now we are trying to fix 50 years of memory corruption bugs being fixed multiple times per month.
- W-Stool 6y agoVMS, DEC's OS for their VAX architecture, was written in Bliss and a listing of the entire source code was available at the time on microfiche. Could you imagine Microsoft of Apple making the entire source code to their OS available to customers inexpensively?