[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?

David Bartley