Post by Keith PooleTom, I've been reading through your ideas and I think it's pretty
decent as a high-level system architecture, I've got a few
1. IR - if you're planning to use a variant of Lisp as the runtime/vm
then would Lisp expressions become the IR (and possibly the HLM) layer?
Lisp/Scheme is convenient for experimenting with parser/compiler
techniques... we'll answer that question when we've done enough
experimentation.
If Lisp/Scheme proves adequate, we'd eventually write our own minimal
Lisp variant that addresses problems with Lisp and Scheme as we know
them. CROMA might be what we're looking for, but AFAIK it's "under
wraps".. maybe it's all hype :-)
Post by Keith Poole2. I think it would be useful to integrate C into TUNES, simply
because of the vast amount of software available in that language
(though it could be contained in a 'sandbox' environment like
Javascript is in browsers)
We have a C (to HLL) Translator subproject that hasn't even been
started. I could be wrong, but I think this would be semi-automatic at
best, and not very useful. It's an abstraction inversion.
However, we can interface with shared libraries, ".o" object files, and
of course, a host OS written in C. (See the O'TOP subproject, on which
we've made significant progress, but poorly documented.) We'd "sandbox"
C programs in the usual fashion, by running them in separate processes
with MMU hardware protection. We could even "embed" a POSIX kernel in
Tunes, the way Cygwin embeds it in Windows... it's a big undertaking,
but it could be done.
Post by Keith Poole3. The 'Compembler' - would this be a set of high-level assemblers,
one for each architecture, or a generic one which produces different
code for each processor?
I imagine there'll be processor-specific assemblers, cpu-family layers,
and a generic higher-level layer or "portable assembler" -- like C
without all the baggage!
Post by Keith Poole4. Reconciling the type systems - will be interesting :)
What do you think the first steps towards this should be?
Keith
All I know is that mathematicians were arguing about type theory long
before computers came to be, and the debate continues. Haskell, OCAML
and Python have pretty well-developed type/class systems, but they're
not without problems. For starters I'd look into type inference &
annotations in CMUCL/SBCL, RPython, Javascript 2.0...
Thanks for the questions.
- Tom