Discussion:
Sketch
Tom Novelli
2007-07-30 01:05:56 UTC
Permalink
I thought some graphics would add a nice touch to the web site.. here's
something I'm working on:

http://tom.bespin.org/sketch/

Any suggestions?

- Tom
Keith Poole
2007-07-30 15:14:12 UTC
Permalink
Post by Tom Novelli
I thought some graphics would add a nice touch to the web site..
http://tom.bespin.org/sketch/
Any suggestions?
- Tom
Tom, 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 questions/
comments:

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?

2. 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)

3. 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?

4. Reconciling the type systems - will be interesting :)

What do you think the first steps towards this should be?

Keith
Tom Novelli
2007-08-01 23:27:53 UTC
Permalink
Post by Keith Poole
Tom, 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 Poole
2. 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 Poole
3. 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 Poole
4. 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
Tom Novelli
2007-09-09 17:47:34 UTC
Permalink
I've simplified my Tunes sketch, after considerable thought and
reading. I realized that the static-dynamic distinction is pretty
arbitrary, so that's all gone, as are a number of optional
implementation details.

I also describe how we could implement Tunes in Common Lisp, while
making it clear that Tunes is intended to eventually replace Lisp with
something better. (Is that how you see it, Fare?)

I'm pretty happy with this, and I'll post it on the real site after a
little more editing.

New, smaller sketch: http://tom.bespin.org/sketch/

Old version: http://tom.bespin.org/sketch/sketch.html

(BTW, the web server is down at the moment)

- Tom

Loading...