Path: csiph.com!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Andy Walker Newsgroups: comp.compilers Subject: Re: Add nested-function support in a language the based on a stack-machine Date: Wed, 14 Mar 2018 00:27:08 +0000 Organization: Not very much Lines: 56 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <18-03-062@comp.compilers> References: <6effed5e-6c90-f5f4-0c80-a03c61fd2127@gkc.org.uk> <18-03-042@comp.compilers> <18-03-049@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="98556"; mail-complaints-to="abuse@iecc.com" Keywords: history, design, algol60, comment Posted-Date: 14 Mar 2018 00:44:27 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Content-Language: en-GB Xref: csiph.com comp.compilers:2005 on 13/03/18 03:09, William Clodius wrote: > Martin Ward wrote: >> So to answer your hypothetical question: how would programming language >> be different if the designers of Algol 60 had decided to put >> implementation convenience above mathematical simplicity >> and expressive power in the language? [Ie, had specified call-by-reference rather than call-by-name.] >> Well, perhaps compiler >> research would have stagnated from the beginning [...]. Three points: (a) IAL ["Algol 58"] specified call-by-textual-replacement. "The execution ... is effected as though all formal parameters were replaced, throughout the procedure, by the actual parameters .... This replacement may be considered to be a replacement of every occurrence ... of the formal parameters by the symbols (or sets of symbols) listed as actual parameters ...." [Report, section D9] It would be surprising if a decent-sized collection of the best brains of the period didn't realise that *if* IAL were ever to be implemented, some "interesting" games could be played. (b) However, that's a rather big "if". In those days when it was almost impossible to transfer code from machine A to machine B, the primary purpose of the "algorithmic" languages was not to be the source of a program, but to express algorithms for translation into machine code or into some other implemented language by typing it up onto cards or tape. So there was little or no point in writing obscure code in Algol [any version thereof]. OK, Algol compilers did eventually arrive, though few were both reasonably complete and reasonably efficient. (c) I agree that the difficulties of compiling IAL, A60 and A68 stimulated research into compilation techniques. But that may well have been the cause of the virtual demise of Algol, upstaged by languages that were easier to write compilers for [but harder to write programs *in*]. > However the other members of the committee were in a better position to > know their own minds than Perlis was, and the the first HOPL conference, > in the discussion of Naur's presentation, some of them claimed to have > understood the implications of call by name from the beginning. It seems to have been a left-pondian vs right-pondian thing. As a very crude over-generalisation, one side simply wanted to get work done, and the other side was much more interested in the limits of what could be done. Plenty of exceptions both ways, esp by the late 1970s. -- Andy Walker, Nottingham. [How close did anyone get to implementing Algol 58? I know about JOVIAL but I believe it was pretty far from full IAL. -John]