Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!uw-beaver!teknowledge-vaxc!sri-unix!garth!smryan From: smryan@garth.UUCP (Steven Ryan) Newsgroups: comp.lang.misc Subject: Re: Algol 60 vs Algol 68 (was "stack machines (Burroughs)") Message-ID: <772@garth.UUCP> Date: 21 Jun 88 20:31:05 GMT References: <1521@pt.cs.cmu.edu> <1532@pt.cs.cmu.edu> <476@pcrat.UUCP> <1188@unisoft.UUCP> <949@gethen.UUCP> <130@quintus.UUCP> Reply-To: smryan@garth.UUCP (Steven Ryan) Organization: INTERGRAPH (APD) -- Palo Alto, CA Lines: 41 >Algol W came *before* Algol 68. There are no concepts in Algol W or Pascal >that I can think of that aren't in Algol 68, and the main concept in Modula >(did you mean Modula or Modula-2? they are quite different) not in Algol 68 >is modules. The irony of it all is that Pascal is significantly crippled >with respect to Algol W. - A unified loop clause that permits counting and while-conditions. (I understand Oberon dropped the for-statement because so many programs need this combination rather either/or.) - Permits a series in the predicate position. - A safe way to include unsafe predicates: if (guard|unsafepredicate|false)... - Collateral clause which can be structure-display or row-display, or just a nondeterministic construct. - Parallel clause. - A safe union mode (can't diddle the tag field to play silly bit games). - Array bounds are not part of syntax so that formal arrays and actual arrays are easily reconciled. (How long has Pascal struggled with that one?) - Expression language. - Initialised declarations. - Ref ref modes (?). - A mode system that does not require hand waving to cover the difference between variable and value. - Declaration can be near the point of use--no need to introduce a new range for each joined declaration. - Identity declarations. - Operator declarations. - Priority declarations. - Procedures as first class objects. That's all I can think of now right now. Somebody pointed out "Algol does the hard parts and lets the programmer do the easy parts. Pascal does the easy part and makes the programmer do the hard parts." >The essential ideas of Algol 68 were that the whole language should be >precisely defined and that all the pieces should fit together smoothly. >The basic idea behind Pascal was that it didn't matter how vague the >language specification was (it took *years* to clarify) or how many rough >edges there were, as long as the CDC Pascal compiler was fast. And the Pascal method of language definition is unfortunately the accepted and acceptable norm.