Path: utzoo!attcan!uunet!lll-winken!sol.ctr.columbia.edu!samsung!xylogics!bu.edu!cs!art From: art@cs.bu.edu (Al Thompson) Newsgroups: comp.lang.misc Subject: Re: Algol, and language design Message-ID: <61396@bu.edu.bu.edu> Date: 26 Jul 90 17:01:43 GMT References: <25630@cs.yale.edu> <58091@lanl.gov> <1990Jul26.024449.1777@esegue.segue.boston.ma.us> <2406@l.cc.purdue.edu> Sender: news@bu.edu.bu.edu Reply-To: art@cs.UUCP (Al Thompson) Organization: Computer Science Department, Boston University, Boston, MA, USA Lines: 32 In article <2406@l.cc.purdue.edu> cik@l.cc.purdue.edu (Herman Rubin) writes: |In article <1990Jul26.024449.1777@esegue.segue.boston.ma.us>, johnl@esegue.segue.boston.ma.us (John R. Levine) writes: |> In article <58091@lanl.gov> jlg@lanl.gov (Jim Giles) writes: [...] |> |> How about nested scopes and recursion? I find them handy from time to time. | |Nested scopes of DO loops are present in Fortran. Scope, as in the sense of variables visible only from within the loop? Is this what you meant? Algol had a feature in which local data could be declared local to any begin end pair. Thus the compound statement in Algol would resemble a procedure except it had no parameters and could not be called elsewhere. Mathematicians have used |recursion for ages, and the problems with implementing recursion in the |architecture of the time were horrendous. Frankly, some of them still are. |What language allows carrying globals in registers across recursion? How is carrying globals in registers across recursion a language issue? It's an implementation issue. Whether you can do it or not is a function of the cleverness of the compiler writer and the architecture upon which it is implemented. | |One of the things which should be noted was that, at the time, registers |were few and transfer and memory access were relatively fast compared with |computation. The world's first commercial Algol machine (the Burroghs B5000 and derivatives) didn't have any registers, at least none visible to the user.