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