From comp.lang.scheme [Re: C to Scheme]
Sat, 31 May 1997 09:26:16 -0500 (CDT)
Dave MASON writes:
> It's Dave Mason, not Hanson.
I was the one who mangled your name. Sorry about this.
I didn't guess that you might be lurking here. I wonder how many
people are on this list.
> A related problem is that much real-world software doesn't
> treat pointers by the book, so if you want to support it all, you need
> C-like memory layouts.
I remember reading in the comp.lang.c FAQ that the C compiler that
came with some Lisp Machine (Zeta C?) was an extreme example of
a machine that didn't have NULL pointers that were all all-bits-off
integral type (in fact, the NULL pointer was mapped to some special
object). It was an entirely legal (by the book) rendering, but a
lot of software would have trouble with it.
Maybe there's two ways to go here. One way would be to not support
non-conforming programs (not generate the intended result, because
the intention was backed by illegal practice). Or attempt to support
some large subset of illegal practices. Current C compilers often
support some subset of illegal practices and highly portable software
has to eliminate all of these subsets in order to be portable so maybe
highly portable software would work.