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

proposing changes to RRRS



    Date: 20 Feb 86 16:58:57 PST (Thu)
    From: willc%tekchips%tektronix.csnet at CSNET-RELAY.ARPA

    Non-controversial changes

We seem to have opposing ideas of what's controversial and what's
non-controversial.  Hate to spoil the harmony with my remarks, but I
feel compelled.  I don't want to be embarrassed to have this thing
appear in SIGPLAN.  (Will that remark help convince people that I'm
ornery?)

    ----------------------------------------------------------------
    Pages 7, 12, 48, and 54:  The context free grammar omits characters and
    vectors as constants, and is therefore inconsistent with the language
    describing the quote special form and the notations for characters and
    vectors.  This should be fixed.  Note, however, that the # notations
    for characters and vectors are optional.

I think this depends on the outcome of the debate on self-evaluation of
characters and vectors, which may overturn what page 12 says.  E.g. if
vectors aren't going to be self-evaluating, then they probably needn't
be mentioned on page 7, since they won't belong to the language
<expression> but rather to the language <datum>, and it is stated that
the syntax of <datum> is spread throughout the manual.  (My perception
is that consensus will be for characters to self-evaluate and vectors
not.)  But regardless of how this comes out, I have a suggestion to
make: on page 7, add the following explicit grammar for <datum>:

<datum> ::= <identifier> | <numeral> | <string> | #!true | #!false |
	    <character> | <list> | <vector>

Then mention that the syntax of <numeral>, <list>, etc. is found
elsewhere, and maybe give page numbers.  Add a grammar for <list> on
page 26 which includes #!null, '<datum>, and `<pattern> (or `<datum>,
,<datum>, and ,@<datum>, see below).  Add the obvious grammar for
<vector> on page 54, for completeness.

I think that the description of READ should mention that what it does is
recognize the <datum> nonterminal, and return an object which represents
the parse tree in a natural way (the same way as QUOTE).  Also, if we
can get the backquote problem ironed out, a statement should be made
somewhere to the effect that the language <expression> is a (strict)
subset of the language <datum> and that this while to the uninitiated
this might appear to be a confusing coincidence, actually the
uninitiated are right.


    Controversial changes [flush named-lambda, change do, change eq? and eqv?]

I agree with all of these changes.

Please note that in debating the EQ? and EQV? changes, the two
questions, essentially (a) should eqv? be implementation-dependent and
(b) should procedures and numbers have associated locations, can and
probably should be treated independently.