Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!ukc!dcl-cs!aber-cs!pcg From: pcg@aber-cs.UUCP (Piercarlo Grandi) Newsgroups: comp.lang.misc Subject: Re: Late Bloomers Revisited Message-ID: <1544@aber-cs.UUCP> Date: 20 Dec 89 15:30:48 GMT Reply-To: pcg@cs.aber.ac.uk (Piercarlo Grandi) Organization: Dept of CS, UCW Aberystwyth (Disclaimer: my statements are purely personal) | Frankly, Algol 68 is now all but dead, but if somebody, e.g. | Cambridge UK, were to release on the net, e.g. comp.sources.misc, | as freeware the Algol68{C} Lines: 58 Well, APL is different, because it has always had loyal commercial followers, and IBM behind it. APL has never been really dead. Algol 68 is essentially dead. There are a few users in the UK, NAG may still be supporting their fine mathematical library with Algol 68 bindings, but that's it mostly. Anybody still using Neliac? :-> I would like a copy of that Algol68 from Cambridge if I could have one for UNIX. Cambridge tend to be fairly liberal with it, at least to Universities (I got a copy several years ago fairly easily). It is worth having a look at. They have a very flexible intermediate code generation scheme, that ports easily. The most likely use would be to explore in a real environment, (i.e. 'off the blackboard') what some of the data structuring ideas of Algol68 can bring to our in-house language design efforts. Most of them have been borrowed into other languages, so overloading, operators, etc... you may already know. On the other hand, in Algol 68 they are beautifully integrated and more general than anywhere else (at times, too much so). You may, if not already, want to have some hands experience with Simula 67 as well, because a number of interesting ideas and concepts from Simula 67 (block prefixing, inner, non nested flow control, class bodies, inspecting, and a few more recent ones) are not simply there in most common OO languages. On the other hand Simula 67 has some obvious drawbacks, mostly because of backwards compatibility with Algol 60, like the forced use of references for class objects. Note: Bertrand Meyer, that writes at length about Simula 67 in his book, seems not to have realized that the forced use of references is a regrettable hack, not a feature. This is fairly clearly said in the Simula 67 papers, and too bad that in Eiffel this hack survives, only worse. By the way, I am working on a paper in which I purport to show that this hack is the reason why Simula 67 has prefixing, that was later misnomed inheritance, and that prefixing/inheritance is superfluous and even negative in a language like C++ that does not mandate the use of references. Also, the Algol 68 Revised Report is a model of clarity, simplicity, conciseness and elegance in language definition, and the use of two level grammars exemplary, as is the careful choice of terminology. It is well worth reading on its own sake. By the way, somebody will disagree with me, but I really think that is true, especially given the (at times excessive, e.g. coercions) sophistication of the language. I think that the bad press that Algol 68 got in this area is because of the original Report, which was not very nice (what about "gomma"s? :->). The Revised Report is another things entirely. Compare it with the reference manuals on Ada and C++, which languages are certainly on the same level of sophistication, and have a good many quirks as well, and you will see that the Algol 68 RR never fails to make clear what is the answer to even the most obscure questions (admittedly, you can formulate much more obscure questions about Ada and C++ than Algol 68). -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk