Path: utzoo!utgpu!watmath!clyde!att!pacbell!ames!mailrus!cornell!uw-beaver!uoregon!markv From: markv@uoregon.uoregon.edu (Mark VandeWettering) Newsgroups: comp.lang.misc Subject: Re: aGREeable features (was Re: Algol-68 down for the count) Message-ID: <3289@uoregon.uoregon.edu> Date: 4 Dec 88 03:01:54 GMT References: <406@ubbpc.UUCP> <3688@hubcap.UUCP> <2070@garth.UUCP> Reply-To: markv@drizzle.UUCP (Mark VandeWettering) Organization: University of Oregon, Computer Science, Eugene OR Lines: 41 In article <2070@garth.UUCP> phipps@garth.UUCP (Clay Phipps) writes: >In article <3688@hubcap.UUCP> steve@ragman writes: >>From article <406@ubbpc.UUCP>, by wgh@ubbpc.UUCP (William G. Hutchison): >>The fact that call by name is still considered a valid question >>on the advanced CS part of the GRE is some evidence. Regardless of whether or not the use of call by name is desireable, examination of the problems inherent in call by name leads to a better understanding of how programming languages are implemented. >My recollection is that call-by-name was included in Algol 60 >to simplify implementation of some numerical analysis algorithm >like the Runge-Kutta[sp?] or Newton-Raphson (these are *not* my field), >yet it was made the default parameter transmission method. >I don't recall the subject algorithm being terribly difficult >without call-by-name in FORTRAN. Call by name can be elegant, but it interacts with side effects in odd ways. For instance, there is no way to swap two values in pass by name using assignment, to assure yourself try i and A[i].... >Funny thing about how call-by-name hasn't shown up in any other >mainstream language, including [not being supported in] Algol-68. >Is it possible that the hassles of implementing call-by-name and >teaching what it does have led language designers to conclude >that "'t'ain't worth it" ? Call by name is very difficult to implement *in languages with side effects* In functional languages, call by name can be effectively and efficiently implemented. Call by name is very popular, and has been refined into "lazy evaluation".... It is important to study all programming languages which has in some way molded the evolution of the field. Algol 68 certainly has done that, and I would think that it was worth examining as an intellectual exercise. Mark VandeWettering