[LMH]Re: Various questions

James A. Crippen james@unlambda.com
Wed Apr 24 13:12:01 2002


Tim Moore <moore@bricoworks.com> writes:

> On Tue, 23 Apr 2002, John Morrison wrote:
> 
> > Hi;
> > 
> > Emmanuel Rialland wrote:
> > > 1) why C++?
> > > why not lisp / scheme / OCaml or anything else (I remember
> > > that simh was mentionned).
> > 
> > Easier to put on raw hardware.  If we were doing this in Lisp, and
> > didn't care so much about a Lisp OS, putting more work into CMUCL/SBCL
> > and gutting a Linux distro might be the way to go.

Notes about retargeting compiler below...

I'd rather not bother with trying to build a LispOS based on SBCL or
CMUCL.  Not that it's a bad idea, but the problem is that you'd end up
recreating everything that's already done on the Exploder.  And
porting the Exploder code to CMUCL would be a major PITA.  Major PITA.
Because Zetalisp is *not* the same as Common Lisp, and because the
code takes advantage of lots of low level details (look at TV (on
Exploder or Bollix, doesn't matter) for plenty of examples).

No way do I want to redo all the work already done.  And if you start
from scratch you lose continuity with the MIT LispMs, which is IMHO a
bad thing -- you lose capability to resurrect lots of old code
floating around...  And you lose historical perspective, which is very
important in my experience.

> In defense of C and C++, a CPU emulator is mostly an exercise in
> moving bits and bytes around, and C is very good at that, especially
> when the bytes are in 32 bit chunks.  That said, we could probably
> generate a bunch of C/C++ from Lisp, especially as we have
> interesting TI Lisp source code.

And Lisp doesn't exist on every platform.

I would like to see in the future the capability to generate C/C++ as
output from the Explorer Lisp Compiler.  This will probably be the
first step in adding multiple back ends to the compiler, that it may
generate code for x86, Sparc, etc, besides the LispM.

Why?  So you can write hardware drivers in Lisp.  And then just patch
the code objects into the backend of the system.  Eventually the whole
emulator could be bootstrapping.  And should be, I think.  But the
necessity of having the C/C++ back end is to maintain portability.

I'm rambling.  I should make these thoughts more coherent at some
point.  Maybe a 'skypie' page?

> Complexity is a means to an end, not an end in itself :)

Really?  Then where does Miscrosoft get off?  Office 2000 seems like
its goal is pure complexity.

Hmm.  Maybe I should do a research project on mathematical complexity
in computing applied to modern software development.  Sounds like a
good bullshit thesis if I ever heard one... ^_^

'james

-- 
James A. Crippen <james@unlambda.com> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.