🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #5604

Re: Algol 60 vs Algol 68 (was "stack machines (Burroughs)")

#5604
From: Richard A. O'Keefe
Date: Fri, 17 Jun 1988 20:40
29 lines
2329 bytes
In article <492@ruuinf.UUCP> piet@ruuinf.UUCP (Piet van Oostrum) writes:
>I wrote major parts of both an Algol 68 and an Algol 60 compiler, so I
>assume I know a bit of the difficulties. Regarding ALGOL 68 and C, I think
>there are a lot of ideas from Algol 68 in C, but -- as in Pascal -- C left
>out a lot of the hard things. The syntax of C is much closer to Algol 68
>than Pascal.

I do not understand why people claim a relationship between C and Algol 68.
C is BCPL + Pascal types.  The only thing that C's "struct"s have in common
with Algol 68 is the name, the _semantics_ is Pascalish.  C's "unions" are
not Algol 68's secure unions (e.g. there is no discrimination case statement)
but semantically identical to Pascal's variant records with no tag variable.
The set of operations in C is exactly the BCPL set.  I think we can explain
the function headings by C's descent from BCPL, when types were added to C,
it would have been easiest to add new lines to programs than to change old
lines.  Compare
    still_legal_c(i, j)		LET BCPL_VERSION(I, J) BE
        {			    $(
           return i+j;			RESULTIS I+J
        }			    $)
Even alloca() has a BCPL equivalent (VECTOR N) rather than an Algol 68 one.
Just about the only thing in C which I can find in Algol 68 but not in BCPL
or Pascal is "long int" and "short int".  (Algol 68 uses "long real" and
"real", not "double" and "float".)  Examples could be multiplied: C's "switch"
statement comes from BCPL and has very little in common with Algol 68's "case"
statement, C's scoping comes from BCPL, not Algol 68, &c &c &c.

It's not that C left anything out from Algol 68, it's that the languages C
really is descended from never had them.
Technical Details
Message-ID: <125@quintus.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-tis!mordor!joyce!sri-unix!quintus!ok
References: <1521@pt.cs.cmu.edu> <1532@pt.cs.cmu.edu> <476@pcrat.UUCP> <2868@louie.udel.EDU> <370@dlscg1.UUCP> <3147@polyslo.UUCP> <10064@tekecs.TEK.COM> <1988Jun11.200757.12285@light.uucp> <492@ruuinf.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-tis!mordor!joyce!sri-unix!quintus!ok
From: ok@quintus.UUCP (Richard A. O'Keefe)
Newsgroups: comp.lang.misc
Subject: Re: Algol 60 vs Algol 68 (was "stack machines (Burroughs)")
Message-ID: <125@quintus.UUCP>
Date: 17 Jun 88 20:40:14 GMT
References: <1521@pt.cs.cmu.edu> <1532@pt.cs.cmu.edu> <476@pcrat.UUCP> <2868@louie.udel.EDU> <370@dlscg1.UUCP> <3147@polyslo.UUCP> <10064@tekecs.TEK.COM> <1988Jun11.200757.12285@light.uucp> <492@ruuinf.UUCP>
Reply-To: ok@quintus.UUCP (Richard A. O'Keefe)
Organization: Quintus Computer Systems, Inc.
Lines: 28