Re: order of evaluation John Cowan 05 Apr 2006 16:26 UTC

Sebastian Egner scripsit:

> Now the rationale for <unspecified order> in procedure
> application is...
>
> ...not really obvious to me, either. My guess:
>
> a) Theory people like it big time because the order of
> evaluation of argument expressions is a non-essential
> feature of the model, and would have to be introduced
> into the semantics artificially afterwards.
>
> b) Implementations are free to choose the internal
> representation of argument lists, and hence also the
> algorithms for evaluating these expressions.

The C language allows the same freedom to implementors, and
probably for the same reasons: on some machines it's faster
to evaluate LTR, on others RTL is better, depending on the
natural growth direction of the stack.

C has a mild advantage over Scheme in this area, in that
Scheme systems are compelled to treat a variable
number of arguments as a Scheme list, whereas C uses
magic syntax to provide access to such arguments.

(This is the only place in which a Scheme datatype is
actually exposed other than through the standard library.)

--
John Cowan   www.ap.org   www.ccil.org/~cowan   xxxxxx@ccil.org
Lope de Vega: "It wonders me I can speak at all.  Some caitiff rogue did
rudely yerk me on the knob, wherefrom my wits still wander."
An Englishman: "Ay, a filchman to the nab betimes 'll leave a man
crank for a spell." --Harry Turtledove, Ruled Britannia