From: Paul Winalski <paul.winalski@gmail.com>
To: Computer Old Farts Followers <coff@tuhs.org>
Cc: tuhs@tuhs.org
Subject: [TUHS] Re: mental architecture models, Anyone ever heard of teaching a case study of Initial Unix?
Date: Mon, 8 Jul 2024 18:14:07 -0400 [thread overview]
Message-ID: <CABH=_VQABpXciOhd=OYGjGWeQAnBo3hMFeKm+bEzK9J1_bzfig@mail.gmail.com> (raw)
In-Reply-To: <7e4a089d-038d-4054-b315-ff41c8396a47@insinga.com>
[-- Attachment #1: Type: text/plain, Size: 3313 bytes --]
[redirecting this to COFF]
On Mon, Jul 8, 2024 at 5:40 PM Aron Insinga <aki@insinga.com> wrote:
>
> When DEC chose an implementation language, they knew about C but it had
> not yet escaped from Bell Labs. PL/I was considered, but there were
> questions of whether or not it would be suitable for a minicomputer. On
> the other hand, by choosing BLISS, DEC could start with the BLISS-11
> cross compiler running on the PDP-10, which is described in
> https://en.wikipedia.org/wiki/The_Design_of_an_Optimizing_Compiler
> BLISS-11
> <https://en.wikipedia.org/wiki/The_Design_of_an_Optimizing_CompilerBLISS-11>
> and DEC's Common BLISS had changes necessitated by different
> word lengths and architectures, including different routine linkages
> such as INTERRUPT, access to machine-specific operations such as INSQTI,
> and multiple-precision floating point operations using builtin functions
> which used the addresses of data instead of the values.
>
> In order to port VMS to new architectures, DEC/HP/VSI retargeted and
> ported the BLISS compilers to new architectures.
>
> There have in general been two approaches to achieving language
portability (machine independence).
One of them is to provide only abstract data types and operations on them
and to completely hide the machine implementation. PL/I and especially Ada
use this approach.
BLISS does the exact opposite. It takes the least common denominator. All
machine architectures have machine words and ways to pick them apart.
BLISS has only one data type--the word. It provides a few simple
arithmetic and logical operations and also syntax for operating on
contiguous sets of bits within a word. More complicated things such as
floating point are done by what look like routine calls but are actually
implemented in the compiler.
BLISS is also a true, full-blown expression language. Statement constructs
such as if/then/else have a value and can be used in expressions. In C
terminology, everything in BLISS is a lvalue. A semicolon terminates an
expression and throws its value away.
BLISS is also unusual in that it has an explicit fetch operator, the dot
(.). The assignment expression (=) has the semantics "evaluate the
expression to the right of the equal sign and then store that value in the
location specified by the expression to the left of the equal sign".
Supposing that a and b are identifiers for memory locations, the expression:
a = b;
means "place b (the address of a memory location) at the location given by
a (also a memory location)". This is the equivalent of:
a = &b;
in C. To get C's version of "a = b;" in BLISS you need an explicit fetch
operator:
a = .b;
Forgetting to use the fetch operator is probably the most frequent error
made by new BLISS programmers familiar with more conventional languages.
DEC used four dialects of BLISS as their primary software development
language: BLISS-16, BLISS-32, BLISS-36, and BLISS-64 the numbers
indicating the BLISS word size in bits. BLISS-16 targeted the PDP-11 and
BLISS-36 the PDP-10. DEC did implementations of BLISS-32 for VAX, MIPS,
and x86. BLISS-64 was targeted to both Alpha and Itanium. VSI may have a
version of BLISS-64 that generates x86-64 code.
-Paul W.
[-- Attachment #2: Type: text/html, Size: 4039 bytes --]
next prev parent reply other threads:[~2024-07-08 22:14 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-03 4:51 [TUHS] " sjenkin
2024-07-03 5:02 ` [TUHS] " Al Kossow
2024-07-03 6:46 ` arnold
2024-07-03 14:04 ` Clem Cole
2024-07-03 15:22 ` Theodore Ts'o
2024-07-03 15:36 ` Larry McVoy
2024-07-03 14:59 ` Marc Rochkind
2024-07-03 23:35 ` G. Branden Robinson
2024-07-04 13:00 ` Marc Donner
2024-07-03 9:04 ` A. P. Garcia
2024-07-03 15:17 ` Vincenzo Nicosia
2024-07-03 15:35 ` Marc Donner
2024-07-03 17:39 ` Jon Forrest
2024-07-03 17:49 ` segaloco via TUHS
2024-07-03 18:16 ` Erik E. Fair
2024-07-03 19:58 ` Rich Salz
2024-07-03 23:15 ` Dave Horsfall
2024-07-03 23:23 ` Marc Donner
2024-07-03 23:26 ` Rik Farrow
2024-07-04 23:26 ` Dave Horsfall
2024-07-03 15:37 ` Al Kossow
2024-07-03 16:01 ` Al Kossow
2024-07-03 16:05 ` Warner Losh
2024-07-03 23:29 ` Marc Rochkind
2024-07-03 23:50 ` G. Branden Robinson
2024-07-04 8:23 ` Vincenzo Nicosia
2024-07-04 20:34 ` Nevin Liber
2024-07-04 20:44 ` segaloco via TUHS
2024-07-04 21:41 ` sjenkin
[not found] ` <7AC009E5-C985-44AD-A55E-E0BFC05CDD31@serissa.com>
2024-07-05 9:41 ` Steve Jenkin
2024-07-05 9:47 ` Steve Jenkin
2024-07-05 0:03 ` Stuff Received
2024-07-05 0:12 ` Larry McVoy
2024-07-05 2:24 ` Adam Thornton
2024-07-05 2:42 ` Bakul Shah via TUHS
2024-07-05 7:13 ` arnold
2024-07-05 7:42 ` Bakul Shah via TUHS
2024-07-05 8:20 ` arnold
2024-07-05 8:52 ` G. Branden Robinson
2024-07-05 7:36 ` Dave Horsfall
2024-07-05 10:18 ` Peter Yardley
2024-07-05 21:38 ` [TUHS] Re: mental architecture models, " John Levine
2024-07-05 21:49 ` Larry McVoy
2024-07-05 22:08 ` Charles H Sauer (he/him)
2024-07-05 22:24 ` Larry McVoy
2024-07-05 23:17 ` John Levine
2024-07-06 12:52 ` sjenkin
2024-07-06 14:02 ` John R Levine
2024-07-06 15:58 ` Clem Cole
2024-07-06 20:56 ` John R Levine
2024-07-06 21:32 ` Charles H Sauer (he/him)
2024-07-06 23:46 ` Peter Yardley
2024-07-07 17:43 ` James Frew
2024-07-07 1:39 ` John Levine
2024-07-07 3:26 ` [TUHS] Re: PL.8 [was " Charles H Sauer (he/him)
2024-07-08 21:39 ` [TUHS] " Aron Insinga
2024-07-08 22:14 ` Paul Winalski [this message]
2024-07-09 1:04 ` Aron Insinga
2024-07-08 22:17 ` Rik Farrow
2024-07-09 0:08 ` Adam Thornton
2024-07-09 2:40 ` Dave Horsfall
2024-07-09 2:43 ` Warner Losh
2024-07-09 4:23 ` Adam Thornton
2024-07-09 5:06 ` Aron Insinga
2024-07-07 5:33 ` arnold
2024-07-05 22:10 ` Dan Cross
2024-07-07 22:00 ` [TUHS] " Dave Horsfall
2024-07-07 23:28 ` Brad Spencer
2024-07-08 6:17 ` Dave Horsfall
2024-07-08 6:27 ` Lars Brinkhoff
2024-07-08 6:51 ` Dave Horsfall
2024-07-08 9:36 ` David Arnold
2024-07-08 6:59 ` arnold
2024-07-08 13:22 ` Larry McVoy
2024-07-08 15:37 ` Al Kossow
2024-07-08 17:22 ` Tom Lyon
2024-07-08 17:04 ` Clem Cole
2024-07-08 15:28 ` Brad Spencer
2024-07-08 15:33 ` Al Kossow
2024-07-09 22:54 ` Dave Horsfall
2024-07-10 13:18 ` Chet Ramey via TUHS
2024-07-10 14:29 ` John Levine
2024-07-08 0:21 ` John Levine
2024-07-08 0:35 ` Dave Horsfall
2024-07-08 12:29 ` Peter Yardley
2024-07-05 16:40 ` Jon Steinhart
2024-07-06 13:20 ` Dave Horsfall
2024-07-05 0:08 ` Marc Rochkind
2024-07-04 1:53 ` John Levine
2024-07-04 2:59 ` segaloco via TUHS
2024-07-04 6:53 ` Rob Pike
2024-07-04 15:07 ` Larry McVoy
2024-07-07 13:57 [TUHS] Re: mental architecture models, " Noel Chiappa
2024-07-07 16:43 ` John Levine
2024-07-10 2:20 Douglas McIlroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CABH=_VQABpXciOhd=OYGjGWeQAnBo3hMFeKm+bEzK9J1_bzfig@mail.gmail.com' \
--to=paul.winalski@gmail.com \
--cc=coff@tuhs.org \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).