Sujet : Re: History of lexical scope in Lisp
De : jbb (at) *nospam* notatt.com (Jeff Barnett)
Groupes : comp.lang.lispDate : 16. Mar 2024, 00:05:37
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <ut2gnj$2g8k5$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 3/15/2024 12:55 PM, Paul Rubin wrote:
Does anyone know when lexical scope started appearing in Lisp? Not
counting Scheme, did it exist in predecessors of Common Lisp? Was it
used much? Is it really true that Common Lisp had both lexical and
dynamic scope in order to support older code that was written relying on
dynamic scope and was too hard to convert?
Thanks. This topic came up in the Forth group.
I'll comment on only a part of your questions, namely whether CL had dynamic scope only for compatibility? The view that I and many others had was that compatibility made it a must AND:
Once you have had the programming convenience of using dynamic scope, you would miss it terribly in a lexical-only language, or worse, in something like the old FORTRAN assembler-level scope. Another argument that I have not seen debated but may be significant is that the CL Error System -- the programming primitives and error class structures don't make a lot of sense in lexical only. The error mechanisms like catch have meanings that include phrases such as "while executing this. I'm available to handle that".
The availability of such fine grained control structures makes many typical Lisp non-hierarchical reasoning* programs possible. I believe that the early and middle AI communities were drawn to Lisp-like development tools because of these possibilities.
* By non-hierarchical reasoning, I'm thinking of Simon's "almost decomposable systems" ideas.
-- Jeff Barnett