[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

re: Condition System Rewrite: cell-error



    Date: 07 Jun 89  1200 PDT
    From: Dick Gabriel <RPG@SAIL.Stanford.EDU>

    [In reply to message from Moon@STONY-BROOK.SCRC.Symbolics.COM sent Wed, 7 Jun 89 14:53 EDT.]

    The word ``entity'' bothers me. It sounds like a punt. I suspect that a
    careful writer could use binding for name-object associations and other 
    phrases to get across that go tags and the like have certain behavior.

If the association of a name with a variable and the association of a name
with a go tag are the same kind of thing, it would be good to have a word
for that thing rather than using carefully constructed periphrastic phrases,
in my opinion.  I'm not sure where the word "entity" came from, escept that
it's used this way in CLtL (it's not in the index, but see p.36 for example)
but it's probably being used consistently with its dictionary definition.

You've given me another excuse not to make any progress on rewriting section
4.1.  If there is controversy on how to explain the concept of environments,
I can't make any progress on cleaning up the messy explanation that exists now.

    I'm looking at the glossary as a dictionary rather than as a source of
    language. 

I both agree and disagree with that.  On the one hand, we shouldn't be forced
by the glossary into saying something different from what we want to say.  On
the other hand, once we have agreed on the glossary it seems senseless not to
use it as the source of answers to our questions about what terminology to
choose.  If we base our terminology on an agreed-upon glossary, the document
seems likely to be less inconsistent.  If we still haven't agreed on the
glossary I don't see how we are going to finish in time.

	      If ``binding'' is not now used for tags, I don't think we should
    extend it that way. However, I await the flood of existing usage to prove
    me wrong. (I exclude three sources of usage: the X3J13 spec itself and
    anything written by Pitman or Jonl).

Since there is no consistent use of the word "binding" in the Lisp community,
our only choices are to create a consistent use or eschew the word entirely.
CLtL uses "binding" to refer only to variables.  Chapter 3 uses contorted
language, including using only variables in the examples, to avoid needing
a word similar to "binding" for the other kinds of entities.  The closest
it comes is to use "name" as a verb.  Perhaps Guy can suggest what we should
do here.

Also CLtL (pp.36-7) seems to make a distinction between a variable
binding, which is an entity to which a variable name is bound by an
environment, and the value of a variable binding, an object associated
with that entity.  Presumably that's so that we can describe what SETQ
does as changing the value of the variable binding, but not changing the
association of the name with the variable binding.  This is needed to
properly describe environment sharing in lexical closures.  A variable
binding is really a cell, but we're avoiding that term.

    It strikes me that the key distinction between ``entity'' and ``object''
    is that an entity is something that can be bound according to the extended
    definition of binding. The definition of ``entity'' is simpy a list of things.

Yes.  I don't see anything wrong with that.