I'd argue that the things that are wrong with "dynamic scope" in the Lisp sense 
(usage #1) are just as wrong with "non-static scope" (usage #2). Dynamic scope 
in Lisp was anti-modular because the meaning of a variable could be affected by 
any code throughout the arbitrary control flow of the program. The same is true 
whenever you have variables whose bindings are decided by dynamic control flow. 
Lisp's dynamic binding was just a special case of the general phenomenon of 
variables whose bindings are determined dynamically. This is why, in my mind, 
the distinction isn't actually all that important.

Regardless, it's clear I caused confusion by my usage. I'll make an effort on 
es-discuss to be explicit about which I mean.

Dave

On Apr 15, 2011, at 6:48 PM, Mark S. Miller wrote:

> On Fri, Apr 15, 2011 at 6:28 PM, David Herman <[email protected]> wrote:
> The fact is that "dynamic scope" is used to mean multiple things: 1) the 
> "stack-like" semantics employed by e.g. the original Lisps, and 2) any 
> non-static scoping semantics. The former was so famous that it came to be the 
> common usage of the term, but #1 is really just a special case of #2. I've 
> seen people use it both ways. Sam's using it the second way, Dmitry is using 
> it the first way (and trying to claim that Sam's way is wrong). It's not 
> really a deep issue, just ambiguous terminology.
> 
> #1 has such a long history and is such a clear concept that I really wish to 
> preserve our ability to talk about it clearly. Why dynamic scoping was 
> attractive and why it turns out to be bad is one of the most important 
> lessons from the history of language design. For me "dynamic scoping" will 
> always be #1. For #2, "non-static scope" is adequate and perfectly clear.
> 
> 
> -- 
>     Cheers,
>     --MarkM

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to