On Dec 17, 2020, at 4:31 PM, John Cowan <cowan@ccil.org> wrote:



On Thu, Dec 17, 2020 at 11:35 AM Bakul Shah <bakul@iitbombay.org> wrote:
Funny how we seem to rehash the same things over the years!

Ars longa, vita brevis.
In a 1988 comp.lang.misc thread when I expressed hope that "a major
subset of Algol 68 with a new and concise syntax (sort of like C's)
can make a very elegant, type safe and well rounded language.",

Piet
van Oostrum[1] commented the combination of dynamic arrays *and*
unions forced the use of GC in Algol68. Either feature by themselves
wouldn't have required GC!

I can't find this anywhere in the thread or elsewhere in comp.lang.misc.  Do you have a reference?

Here's the link: https://groups.google.com/g/comp.lang.misc/c/qkmB_3zuC7Y/m/erN_TfDF38IJ

In any case, I don't understand how a safe language with pointers can avoid the need for *some* kind of GC.

Note that I was talking about a "type safe" subset as opposed to as stricter "safe" subset.
One can argue that Pascal was type safe even with new() / dispose() for pointers.
[Referencing a dead pointer is a runtime error, just like divide by zero]
I think his point was more that each of dynamic arrays by themselves wouldn't require
GC and the same for unions. Remember I was talking about a vague typesafe subset.
So the question is which features to remove? Rmoving pointers would certainly be under
consideration.

[My exposure to Algol68 was when I had stumbled upon Brailsford and
Walker's wonderful "Introductory Algol 68 programming"

Alas, I can only find this at one shady site, or in hardback at Amazon for USD 20 which is a lot for a pig in a poke (no preview).

I think it was less useful as an introduction to programming but was just right for me!
There are other introductory books/articles including one by Andrew Tanenbaum:
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.4668&rep=rep1&type=pdf

Lindsey and van der Muellen's Informal Introduction to Algol 68:
http://www.softwarepreservation.org/projects/ALGOL/book/Lindsey_van_der_Meulen-IItA68-Revised.pdf

J.E.L.Peck's Algol Companion may also be of help:
http://www.softwarepreservation.org/projects/ALGOL/paper/An%20Algol%2068%20Companion.pdf

I have heard good things about Frank Pagan's A Practical Guide to Algol 68...