On 12/22/21 7:11 AM, Charles Lindsey wrote:
> On 21/12/2021 23:06, Bakul Shah wrote:
>> On 12/21/21 1:21 PM, Andy Walker wrote:
>>> On 21/12/2021 18:43, Bakul Shah wrote:
>>>> Looking at C.H.Lindsey's "Modals" in
>>>> It seems this is basically describing generic types and functions.
>>>> For example,
>>>> MODE LINK = (MODE X) STRUCT ( REF X name, REF LINK(X) next);
>>>> So LINK is a modal while LINK(INT) would be a mode, right?
>>> That's my understanding [but based almost entirely on the
>>> article you mention].
>>>> Was this ever implemented or considered seriously for one?
>>> As Charles says, it is believed to have been implemented
>>> in Mary. I don't have the Mary book, and Wiki is silent on the
>>> matter. I "invited" Marcel to implement it for A68G, but he
>>> didn't bite; I didn't push him as to whether this was because it
>>> was too difficult, or too uninteresting [to him]. So, AFAIK, it
>>> has never been implemented in an A68 dialect. Charles may well
>>> know more.
> No, I have heard or done nothing concerning modals since the paper was
> written, and the posts in this thread have already covered most of the
> issues. Essentially modals in Algol 68 are equivalent to templates in
> C++, which we have discussed here several times.
> I had the Mary book at one time, but if you want to read it you will
> have to go to California since all my papers have been donated to the
> Computer History Museum.
CHM is about 5 miles from my home, though temporarily closed due to
the coronavirus. At CHM online I did find Mark Rains' paper on "Some
formal aspects of MARY or Algol X revisited" which seems to explain
its differences from Algol68.
>> Thanks! As it happens, a few years ago I came to know one of the
>> people involved in the Mary language design so I have asked him.
> Was that Mark Rains? Let us know if anything comes back from that source.
Yes, indeed. Now known as Ivan Godard. He has been working on a new
& very interesting processor architecture called Mill for the past many
years. He occasionally posts on comp.arch.
He did respond. In part he said "Modals were declarable LL1 syntax with
value name binding for the runtime arguments; you passed a pointer or
thunk for other kinds of binding. Because both types and syntax could
be arguments too, modals were both weaker and stronger than C++
templates. There was no automatic partial parameterization. Coercions
could be chained arbitrarily to achieve a desired type. Coercions were
declarable; all contexts were fixed by the language."
> My chief memory of Mark Rains is his very quotable remark:
> "Algol 68 is Complex;
> PL/1 is Complicated."
Funny, sad & true! I never had a chance to use A68 but at one point
I knew PL/I pretty well.
Thanks for your response!