The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: "John R Levine" <johnl@taugh.com>
To: sjenkin@canb.auug.org.au, "TUHS" <tuhs@tuhs.org>
Subject: [TUHS] Re: mental architecture models, Anyone ever heard of teaching a case study of Initial Unix?
Date: 6 Jul 2024 10:02:22 -0400	[thread overview]
Message-ID: <5ba59857-78f1-787c-ac9b-f4b6f61ce912@taugh.com> (raw)
In-Reply-To: <6DEE0364-13BF-4DDF-8B42-8EE9DE010211@canb.auug.org.au>

On Sat, 6 Jul 2024, sjenkin@canb.auug.org.au wrote:
> C wasn’t the first standardised coding language, FORTRAN & COBOL at least were before it,
> so there were multi-platform source libraries and shared source, though often single platform.
>
> From what I know, vendor extensions of FORTAN, optimised for their hardware, were common,
> making high-performance, portable source difficult or impossible. 6-bit and 8-bit chars were the least of it.

Even without vendor extensions, writing portable Fortran code was hard. 
Different floating point formats give you different results, and 
architectural differences can bite you.  One famous example is that the 
709x required word alignment, but S/360 had 4 byte aligned floats and 8 
byte aligned doubles, so this:

       REAL R(100)
       DOUBLE PRECISION D(10)
       EQUIVALENCE (R(2), D(1))

would work fine on a 7090 but crash on a 360.  That was painful enough 
that one of the first things they changed on S/370 was to allow misaligned 
data.

I never wrote much COBOL but it had structured data (the ancestor of C 
structs) and "redefines" for overlaying structures which could bite you 
when different machines had different size or alignment.  There were also 
a lot of different character sets which led to bugs when code had implicit 
assumptions about collating sequences, e.g., do numbers come before 
letters as in ASCII, or after as in EBCDIC.

The fact that everything now has 8 bit byte addressed memory with power of 
two data sizes and everything is ASCII makes all these problems go away.

> Is this right:
>
> 	C was the first ’systems tool’ language + libraries available across many platforms.
> 	Notionally, source code could be ported with zero or minimal change.
> 	It made possible portable languages like PERL, PHP, Python.

I think so.  There were previous system languages like a PL/I subset on 
Multics or PL/S on IBM or PL/M on micros but I don't think any of them had 
multiple targets.

> Secondly, portable systems tool languages with a common 2-part design
> of parser/front-end providing an abstract syntax tree
> to multiple back-ends with platform specific code-generators.
>
> Are these back-ends where most of the assembler, memory model and instruction optimisation take place now?

That's the standard way to build a compiler.  Back in the late 1950s 
someone had the bright idea to invent a common intermediate language they 
called UNCOL so all of the front ends could produce UNCOL and all of the 
back ends could translate from UNCOL thereby reducing the NxM compiler 
problem to N+M.  It never worked, both because the semantic differences 
between source languages are larger than they look, and the machine 
architectures of the era were wildly different.

Now we have GCC and LLVM which are sort of UNCOL-ish, but mostly because 
the back ends are all so similar.  The instruction sets may be different 
but the data formats are all the same.

R's,
John


  reply	other threads:[~2024-07-06 14:02 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 [this message]
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
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=5ba59857-78f1-787c-ac9b-f4b6f61ce912@taugh.com \
    --to=johnl@taugh.com \
    --cc=sjenkin@canb.auug.org.au \
    --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).