Path: utzoo!attcan!uunet!snorkelwacker!mit-eddie!uw-beaver!rice!titan.rice.edu!preston From: preston@titan.rice.edu (Preston Briggs) Newsgroups: comp.lang.misc Subject: Re: Algol, and language design Message-ID: <10284@brazos.Rice.edu> Date: 27 Jul 90 04:30:37 GMT References: <1990Jul26.024449.1777@esegue.segue.boston.ma.us> <2406@l.cc.purdue.edu> <11052@netcom.UUCP> Sender: root@rice.edu Organization: Rice University, Houston Lines: 65 In article <11052@netcom.UUCP> ergo@netcom.UUCP (Isaac Rabinovitch) writes: (about nested scopes...) >Then again, LISP might've had this sort of thing before ALGOL. My first reaction was "Nah...", but then I checked a little. I looked in a book called "History of Programming Languages", edited by Wexelblat. It's the proceedings of the ACM SIGPLAN History of Programming Languages Conference, 1978. It's a very cool book. Basically they invited a couple of people who participated in the early development of particular languages (I mean "2 people per language") to submit papers and give talks on what really happened and who did what. The book collects the papers, transcriptions of the talks, questions and replies, plus pictures. Anyway... In McCarthy's paper about Lisp, he says the 1st interpreter appeared sometime in late 1958 or early 1959. The 1st paper was in CACM, in 1960. Titled "Recursive functions of symbolic expressions and their computation by machine, part 1" (there is no part 2). Algol 58 apparently did not have nested scopes, though they did have compound statements (begin-end blocks). Algol 60 had both. Of course, this is all complicated because McCarthy was also on the Algol Committee. He was apparently fairly disgusted with the whole thing, suggesting that the meatings deteriorated into "we'll put your good idea in, if you'll put my good idea in". McCarthy's ideas included conditional expressions and recursion. (I'm not saying he invented recusion! He proposed that they be included in Algol 60.) In Naur's paper, he lists specific dates and author's for all the different proposals leading from Algol 58 to Algol 60. The relevant ideas seem to spring from prosals made by Ehrling (Sept. 15, 1959), Samelson (Oct. 1959), and Wijngaarden and Dijkstra (October 1959). In November 1959, in Paris, a subcommittee meeting (Dijkstra, Landin, Naur) recommened that these ideas be seriously considered. In December, in Mainz, a general meeting of the European representatives produced a proposal that included the modern form of compound statement, with nested declarations. Apparently, reaction in the US to Algol 58 was more concerned with I/O than with control of scoping and such. The Algol section is one of the most interesting in the book. It's interesting (to me) how much bad blood exists today because of the Algol 60 committee. Letters reprinted in various appendices made it clear that many of the committee members were seriously unhappy with the language. So, I dunno about Lisp vs. Algol. We can settle and say that Church invented nested scopes as part of the lambda calculus. Read the book! It's a blast. Languages covered: Algol, Apl, Apt, Basic, Cobol, Fortran, Gpss, Joss, Jovial, Lisp, PL/1 (or is it PL/I? Read!) Simula, and Snobol. -- Preston Briggs looking for the great leap forward preston@titan.rice.edu