Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mstan!amull From: amull@Morgan.COM (Andrew P. Mullhaupt) Newsgroups: comp.arch Subject: Re: He's not the only one at it again! Message-ID: <1294@s8.Morgan.COM> Date: 29 Jul 90 18:33:17 GMT References: <1288@s8.Morgan.COM> <58372@lanl.gov> Organization: Morgan Stanley & Co. NY, NY Lines: 56 In article <58372@lanl.gov>, jlg@lanl.gov (Jim Giles) writes: > From article <1288@s8.Morgan.COM>, by amull@Morgan.COM (Andrew P. Mullhaupt): > > In article <58091@lanl.gov>, jlg@lanl.gov (Jim Giles) writes: > > [...] > LISP beat ALGOL to resursion. Maybe so. I must have the wrong time stamp in my head for Lisp: 1963. > Context free means something different than you are using it for here. No. It refers to the grammar by which the language can be parsed. > 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). Well, FORTRAN might end up having an LR(k) grammar, but that was certainly not a FORTRAN invention. Aho, Sethi and Ullman credit Knuth in 1965 with the introduction of LR grammars. Also: FORTRAN has a context free grammar, but you don't get much for it until FORTRAN 77 and its block style statements. Most people would consider the Algol 60 Report the first use of BNF to define a programming language, and that the equivalence between BNF and context free grammars was almost instantaneously understood as a consequence of this report. The more I think about this question, the more I think that the languages which become widespread aren't really the best ones, and this is likely to remain the same. I am told that X windows (which is another case of success by default) was the subject of a remark by Rob Pike: "Sometimes you can fill a vacuum...and it still sucks." The landscape of widespread software: UNIX, DOS, C, FORTRAN, BASIC, COBOL, Turbo Pascal, PostScript, Lisp, APL, ... all look like vacuum fillers to me. I think that the problem is that people can design software on this scale only by solving _some_ of the problems in front of them, and talking the others under the rug. I have often had conversations with APL fanatics in which their first remark was "well if you're going to talk about interpreter overhead then you really don't understand APL..." as if they always had all the time in the world to run their code. It is one thing to look on the way we program computers as a great achievement. It's pretty hard to have been involved in programming since 1969 and not be stunned by what is now possible. On the other hand, when you look at how everything gets done in reality, the idea that theory gets put into practice fades pretty quickly. Practice got ahead of theory even at the birth of FORTRAN, and we still have to take the bad with the good. Oh, since you all asked: Algol 68 and (maybe) Extended Pascal were the languages I had in mind as first rate. But if pressed, I would retreat from these partially religious positions and admit that all high level languages are second rate at best. And of course almost any high level language is better than assembler, but this is not for any intrinsic reason, i.e. _it need not be so_. Later, Andrew Mullhaupt