[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ASSERT, ports, and NIL
I have some miscellaneous comments on topics raised recently...
1. I like Will's ASSERT. I have used the same approach before in
compilers for Pascal and other languages and find that it is quite
appropriate for both the programmer and a dataflow-oriented optimizer.
2. I like PORT. My Webster's includes the following definitions:
(2a) an opening for intake or exhaust of a fluid ...
(2c) a place of access to a system
This is close enough to the concept we have in mind. Frankly, "raft" seems
too whimsical for a language that deserves to be taken seriously.
3. I hate NIL. However, I have a problem of great practical significance
to our work that I'd like help with. As much as I abhor it personally,
Common Lisp equates the empty list, the logical <false> value, and the
symbol NIL. Here at TI's Computer Science Lab, we are building
experimental multi-lingual program development environments for various
machines (including our Explorer Lisp machine) in which Scheme, Common
Lisp, Prolog, and other languages need to co-exist. I see no practical way
to avoid defining our Scheme's #!NULL and #!FALSE as anything other than
the symbol NIL. Otherwise the two languages cannot share list data. If
anyone has a good general solution to this problem, I'd like to hear of it.
If not, I ask that this interpretation be permitted by the revised report.
Surely we aren't the only ones interested in multi-lingual issues?