From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id F29DB29847 for ; Tue, 9 Jul 2024 00:14:32 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 8CAFC43193; Tue, 9 Jul 2024 08:14:27 +1000 (AEST) Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by minnie.tuhs.org (Postfix) with ESMTPS id D0C4242AA1; Tue, 9 Jul 2024 08:14:19 +1000 (AEST) Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-70b05260c39so2402776b3a.0; Mon, 08 Jul 2024 15:14:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720476859; x=1721081659; darn=tuhs.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cHYc236lOL9KybqEheiwx4fv+NVD4EH4iE+SEWUdDd4=; b=G1GXY24lg85eOsAxfn1kGBhxPa3Ia9tc0s9Fnc7IY5zHFXBFD1RIPQUQXuomet07Nj YeKJ0JZFTCrWWCPJIw9fJvfEr9rNMiD3cMguQvWkMKd3IhJoahoV+6XxMsEojNQRhMhR L10ihpPvE4jb6a8jYPZQqpl8AUlu2CwnrA7FJgLeALBay3DhaTkWZT4K4C95YcSkcDLP NtozGy5XCaSWjnp2VO7vZdqUYJGBivSyFZ5KV9Vu9IDQ1r9pSwBjSrcni7wTgzxDG3Dh t8xTBXB0sbFgyDN7ruhWbkCjxAIojcIUvlymNGhAyioj4arlX6IBI7AACPYNGFMZYPFS KR3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720476859; x=1721081659; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cHYc236lOL9KybqEheiwx4fv+NVD4EH4iE+SEWUdDd4=; b=FY7D11FTC5J5ff4uit2VexGoqbOh2cXKMy4zaU5xCcvKt66TAS6vWamZvM3BG1NXON RbqNkQoTPXCKgM9290iqOVOPk0gQnTZxhEg+Hj78xqrvZuIzvUnF+uoxOdXIksvdDzwx 7XfwZuqDVFMdqKXUZNxYt9wIGoFC12sZPpDDJPPfXV0Vfhch81ZZjz5x6Y1BTEkSmewg MwBC2Ix9l3k9RIRiGH/Uc1LlDaSA0g2N1sTrHXDIsI6h2PmENX5N3HYNymmMOfLMdbs5 UeuKEe5okjKcNiMsAni6fUp1xpkw/uexrb4tI/MuGR8VJHndhclMGniQAUqZfrX79mw2 jGEQ== X-Gm-Message-State: AOJu0YxBudduOG0o/u0U7gEZuRunGnXeJRb3YQrabCQN0yb81gv9JXPa vLLFda2aIYPYPVtATDO8ac1ajGeZbQTrHLjmlAQieq9pwkzFKVIChBhFTlH20fxECsCjsUwSMj5 8D/hmkX05CDpMraKo1AdAiW7sRowG6A== X-Google-Smtp-Source: AGHT+IExYsyq06aUkzXj2obEFtdFAagxUC+qG1BEuR7li84mkEacsqwTNSi408G1FQiNuD4rlsPMdvuABcbyVUgxyb0= X-Received: by 2002:a05:6a00:1304:b0:70b:141d:4a9a with SMTP id d2e1a72fcca58-70b4363223cmr1237071b3a.34.1720476858581; Mon, 08 Jul 2024 15:14:18 -0700 (PDT) MIME-Version: 1.0 References: <20240705213804.550128EDF53C@ary.qy> <20240705214901.GR26356@mcvoy.com> <20240705231714.5F0E58EE123E@ary.qy> <6DEE0364-13BF-4DDF-8B42-8EE9DE010211@canb.auug.org.au> <6c797638-8fef-a587-0f73-cdb564568950@taugh.com> <7e4a089d-038d-4054-b315-ff41c8396a47@insinga.com> In-Reply-To: <7e4a089d-038d-4054-b315-ff41c8396a47@insinga.com> From: Paul Winalski Date: Mon, 8 Jul 2024 18:14:07 -0400 Message-ID: To: Computer Old Farts Followers Content-Type: multipart/alternative; boundary="000000000000000999061cc3bc37" Message-ID-Hash: MRRVPKLRZUU2F4U4XMTGTVYI6MUHKSHQ X-Message-ID-Hash: MRRVPKLRZUU2F4U4XMTGTVYI6MUHKSHQ X-MailFrom: paul.winalski@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: tuhs@tuhs.org X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: mental architecture models, Anyone ever heard of teaching a case study of Initial Unix? List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000000999061cc3bc37 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable [redirecting this to COFF] On Mon, Jul 8, 2024 at 5:40=E2=80=AFPM Aron Insinga 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 > > 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 (=3D) 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 =3D 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 =3D &b; in C. To get C's version of "a =3D b;" in BLISS you need an explicit fetch operator: a =3D .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. --000000000000000999061cc3bc37 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
[redirecting this to COFF]

<= div class=3D"gmail_quote">
On Mon, Jul= 8, 2024 at 5:40=E2=80=AFPM 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.=C2=A0 PL/I was considered, but there were <= br> questions of whether or not it would be suitable for a minicomputer.=C2=A0 = 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/w= iki/The_Design_of_an_Optimizing_Compiler
BLISS-11
and DEC's Common BLISS had changes necessitated by differe= nt
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 achievin= g 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.=C2=A0 PL/I and especiall= y Ada use this approach.

BLISS does the exact oppo= site.=C2=A0 It takes the least common denominator.=C2=A0 All machine archit= ectures have machine words and ways to pick them apart.=C2=A0 BLISS has onl= y one data type--the word.=C2=A0 It provides a few simple arithmetic and lo= gical operations and also syntax for operating on contiguous sets of bits w= ithin a word.=C2=A0 More complicated things such as floating point are done= by what look like routine calls but are actually implemented in the compil= er.=C2=A0=C2=A0

BLISS is also a true, full-blown e= xpression language.=C2=A0 Statement constructs such as if/then/else have a = value and can be used in expressions.=C2=A0 In C terminology, everything in= BLISS is a lvalue.=C2=A0 A semicolon terminates an expression and throws i= ts value away.

BLISS is also unusual in that it ha= s an explicit fetch operator, the dot (.).=C2=A0 The assignment expression = (=3D) has the semantics "evaluate the expression to the right of the e= qual sign and then store that value in the location specified by the expres= sion to the left of the equal sign".

Supposin= g that a and b are identifiers for memory locations, the expression:
<= div>
a =3D b;

means "place b (t= he address of a memory location) at the location given by a (also a memory = location)".=C2=A0 This is the equivalent of:

= a =3D &b;

in C.=C2=A0 To get C's version o= f "a =3D b;" in BLISS you need an explicit fetch operator:
<= div>
a=C2=A0 =3D .b;

Forgetting to u= se 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:=C2=A0 BLISS-16, BLISS-32, BLISS-36, and BLISS-64 the numbers ind= icating the BLISS word size in bits.=C2=A0 BLISS-16 targeted the PDP-11 and= BLISS-36 the PDP-10.=C2=A0 DEC did implementations of BLISS-32 for VAX, MI= PS, and x86.=C2=A0 BLISS-64 was targeted to both Alpha and Itanium.=C2=A0 V= SI may have a version of BLISS-64 that generates x86-64 code.

-Paul W.
--000000000000000999061cc3bc37--