Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!yale!cmcl2!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.arch Subject: Re: He's not the only one at it again! Message-ID: <58372@lanl.gov> Date: 27 Jul 90 23:16:12 GMT References: <1288@s8.Morgan.COM> Organization: Los Alamos Natl Lab, Los Alamos, N.M. Lines: 41 From article <1288@s8.Morgan.COM>, by amull@Morgan.COM (Andrew P. Mullhaupt): > In article <58091@lanl.gov>, jlg@lanl.gov (Jim Giles) writes: > [...] > Recursion? Recursive data structures? Required data declarations? > Scope and re-usable variable names? > > I guess you have prior art for these? There aren't many candidates > for beating ALGOL to the punch. LISP beat ALGOL to resursion. ALGOL may indeed be the first with required declarations - doesn't alter my previous statement: my response was to the claim tha only ALGOL had effect on future language developement. I could remember only two positive features of ALGOL - now you've made it three. Fortran has contributed _many_ more than that. In Fortran, all modules delimit distinct scopes. Local names in one module can be re-used as names in other modules. So, Fortran had the two features you mention. What you probably _REALLY_ mean is _nested_ scope and static binding (where variables in the nested blocks 'cover up' those outside). As I've said in a previous post, these are not universally regarded as positive features. The belief that this method was the proper way to delimit scope sure delayed the development of 'packages' or 'modules' for a number of years. > One of the most important aspects of ALGOL is the grammar on which > is was based. Context free grammars have since been almost universal > for high level languages, excepting FORTRAN, Lisp, APL, and other > elderly relics. The simplicity which the context free grammar brings > to the language cannot be underestimated; it is both simple for the > programmer and for the compiler writer at the same time. Context free means something different than you are using it for here. What you are talking about (aparently) is free-form syntax (which is a mixed bag - at least not all of the aspects of it as ALGOL defined them are a good idea). Context free has to do with the formal specification of the syntax - Fortran is context free (in fact, it's LR(k) - it _would_ be LR(1) if blanks had been significant). J. Giles