On May 22, 2016, at 6:09 AM, Mouse <mouse at Rodents-Montreal.ORG> wrote:
I've often thought about building a C implementation that goes out of
its way to break assumptions like "integers are two's complement with
no padding bits" or "floats are IEEE" or "nil pointers are
all-bits-0"
or "all pointers are the same size and representation" or etc.
Just use Symbolics C on a Symbolics or ZetaC on a TI Explorer. (ZetaC was recently put in
the Public Domain by its author, so you can take a look at how it was implemented.) Both
of them I believe implemented C89.
There?s also someone writing a C to Common Lisp translator that takes some of the same
approaches as those compilers: <https://github.com/vsedach/Vacietis> Something like
that would make it possible to pull C code into a project like Mezzano.
(Another approach would be to write an LLVM back-end that generates Common Lisp using the
same approach as ZetaC, and port clang to it.)
-- Chris