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

Another Can of Worms?



I've withheld this one for a long time on the theory that new
problems with the language should be discussed AFTER the imminent
publication of the standard.  Since we appear to have stalled
that yet again, I'd like to mention it.

I am very concerned about the fact that the document we are
promulgating as a language standard permits of no way to write
truly portable code.  This arises from the lack of a convention
which would permit me to choose the names of variables which will
guarantee me that no implementation has used those names as
special forms.  I know of two solutions: (a) a gentleman's
agreement to the effect that every implementation will support
some well-publicized mechanism for absorbing foreign portable
code (in MIT Scheme, for example, we could provide a portable
syntax table for this purpose); or (b) as in BCPL, make a formal
statement as part of the language design that certain names will
never be used as the names of built-in special forms.

I am in favor of option (b) since it prevents the current
implementors from becoming a select small clique which has more
knowledge than outsiders.  One such proposal would be that we
insert a statement somewhere to the effect that "No
implementation shall supply by default a special form with ":" in
its name".  Thus portable code uses variables with ":" in them
somewhere and all is well.  [FYI, the BCPL statement was that
reserved words were all lower-case and more than one letter
long.]

-- Jim Miller