Down the design trail...

Raul Deluth Miller rockwell@nova.umd.edu
Fri, 9 Dec 1994 07:44:40 -0500


Yeah, we should have C support.  And C++ support.  And C standard
library support.  And COBOL support.  And Smalltalk.  And SISAL.  And
...

At some point, we're going to have to go with a simple design and
start plugging away at the system design.  It's rather hard to port
other languages until we have a platform to port them to.  In our
case, the "platform" we're trying to build is a multi-cpu thing.

Personally, I'm biased towards a forth-machine-like language.
Basically, minimally simple machine semantics so that the interpreter
can fly.  Then you build a small library to implement the kernel.  On
some machines you interpret kernel calls with native code, but to make
porting faster you don't need to do that.  In my mind, the primitives
beyond native forth, should allow setting array bounds (that is,
control memory management hardware) and some kind of communication
with neighbors (here's a list of neighbor types, each of these is
itself a list).

For this low-level kind of work the trade-offs are which kind of
simplicity do you want: support puns or support crystal clear
expression?

A lot of the expressed goals of this project (must be market
acceptable, must run efficiently, must support all the popular
programs, ...) have nothing to do with the underlying system design.

Another direction of discussion has been towards describing the
ultimately portable machine abstraction: 32 bits or 64?  Again, this
isn't going to buy us alot (in my opinion).  We should focus on a
single class of machines for our initial portability work.  For long
term portability, I think we should envision variations sized for
different machine types, with a higher level layer to provide
interoperability between big machines and little machines.  (Perhaps
take a queue from the clothing industry: small, medium, large, and
sometimes extra large, xxl, xxxl, ...  and there's always custom
tailoring for those people who can afford it.)

What do you all think?

-- 
Raul D. Miller          N=:((*/pq)&|)@                 NB. public e, y, n=:*/pq
<rockwell@nova.umd.edu> P=:*N/@:#               NB. */-.,e e.&factors t=:*/<:pq
                        1=t|e*d    NB. (,-:<:)pq is four large primes, e medium
x-:d P,:y=:e P,:x                  NB. (d P,:y)-:D P*:N^:(i.#D)y [. D=:|.@#.d