Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!sun-barr!olivea!mintaka!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!keele!nott-cs!piaggio!anw From: anw@maths.nott.ac.uk (Dr A. N. Walker) Newsgroups: comp.lang.misc Subject: Re: Re: Algol68 (and standards diatribe) Message-ID: <1991Apr19.165324.7261@maths.nott.ac.uk> Date: 19 Apr 91 16:53:24 GMT References: <1991Mar28.011025.16337@ico.isc.com> <2400042@otter.hpl.hp.com> Reply-To: anw@maths.nott.ac.uk (Dr A. N. Walker) Organization: Maths Dept., Nott'm Univ., UK. Lines: 74 [I *know* I shouldn't rise to these silly articles, but I still cannot resist. Sorry.] In article <2400042@otter.hpl.hp.com> sfk@otter.hpl.hp.com (Steve Knight) writes: >I vaguely recall the original posting on Algol68 wondering why the language >didn't receive more acclaim and interest. It *did*. Unfortunately, it also received a lot of flak, mostly ill-informed, and it wasn't helped by poor PR [at least in comparison with Pascal]. >In short, the language is full of complex rules for the convenience >of the programmer (such as the coercion rules) whose implications are >inobvious. The *formal* rules are complex. Have you looked at the similar rules in C, Ada, PL/1, ML, ..., and even Pascal? 22 years on, *I* don't understand them, but it hasn't ever bothered me or the programs I write, any more than not memorising the C precedence rules stops me writing C. In Algol, things work the way you expect or else the compiler spits out an error and you put some more brackets in. > It would have performed a better service if the designers had >focussed on keeping it small, clean, and easy to learn. They *did* focus on clean. As for small, the standard Watt-Peck- Sintzoff syntax charts (comparable to the Pascal "railway tracks") fit onto one side of A4, and the EBNF definition of Woodward&Bond just spills into a second page of smaller than A4; both smaller than the equivalent Pascal. As for easy to learn: from years of teaching both, I confidently assert that if you found Pascal easier, your Algol was badly taught. Algol is a *programmer's* language, just as Unix is a programmer's OS. >My two favourite examples from Algol68 are (1) the dual syntax for control >constructs If it were not dual, which would you prefer? Lots of parentheses, as in Lisp? Or monstrosities like "2 * begin x+y end"? You are free to use only one system; the compiler will be happy. Most programmers prefer to use "begin ... end" or "( ... )" as best suits the context. > and (2) the limitations on procedures being returned as results. What limitations? You are perhaps thinking instead of the fact that locally-constructed procedures tend to have narrower scope than one might like, which makes returning them less useful than one might hope; but that applies to *all* modes, and happens in C and Pascal as well. > But they, amongst a >cast of thousands, contributed to a general perception of complexity >and a lack of orthogonality. *False* perception, gratuitously spread by ill-informed comments. >If these two decisions are compared with those of Pascal, a much more >"successful" languages by my reading, Prediction: in 5 years time, Pascal will be deader than Algol, and much less lamented. How do you measure success, anyway? C, for example, contains much more Algol than Pascal. There may be fewer books on Algol than on Pascal, fewer introductory courses, fewer packages for your Mac/PC, but there is certainly more influence on later languages, and there are still lessons for language designers and compiler writers to learn from Algol. >Anyway, I was really amused by the general feel of the string & the >original question. Your privilege. -- Andy Walker, Maths Dept., Nott'm Univ., UK. anw@maths.nott.ac.uk