Reflecting on reflective computing.

Tril dem@tunes.org
Thu, 22 Oct 1998 22:14:07 -0700 (PDT)


On Thu, 22 Oct 1998, Christopher Barry wrote:

> David Jeske wrote:
> > I wish I could find the original Tunes 'example problem', about the
> > "cd database", however, I can't. Can someone else provide the URL.
> 
> Yes, I'd like to see this.

The CD Database example is at:
http://www.tunes.org/doc/Review/cddb.html
http://www2.tunes.org/doc/Review/cddb.html

> > In Tunes, the idea is to remove all the 'implementation' dependent
> > work in the above picture. To draw a half-correct analogy, you would
> > merely ask Tunes to "run your kernel in a software emulation
> > environment", and it would do the rest of the above stuff for you. It
> > might need to know where to map input and output devices to (like the
> > emulated PC's screen), so it would either make some safe-choice, or
> > ask you what you wanted it to do.
> 
> I have no idea how on earth Tunes could do this, or what this would look
> like or how you would do work with it, what work Tunes would do and what
> you would do.

The hardware platform is implemented as high level objects, which means
you can access it like any other object.  Therefore, you can simply (from
the user/programmer's point of view, perhaps not so simply for us) replace
an actual 386 CPU object (that provides an interface to the physical CPU) 
with a "fake" 386 CPU object, which acts exactly the same only is more
interpreted.  Likewise with objects for the memory, IRQ subsystem, I/O
ports, and other hardware.  The reason this is reflective is that the 386
CPU object isn't the "base" on which all the rest of the system depends.
Instead, the objects that define a CPU are built of logic.  But
implementation of logic may depend on the same CPU.  So the system
dependency is infinitely circular.  The tricky part is making it possible
to break the dependency in an arbitrary place, make a substitution, and
then seal the system back up again.

> No, I have an idea about how it could be better, but the same processes
> no longer apply to make it any better, and there are no more trivial
> things to improve, IMO. But I don't see how Tunes solves some of the
> fundamental AI problems that need addressing for real progress.

Perhaps you could list the problems in AI that need to be solved, then we
can decide whether or not TUNES starts to address them.  Be warned that we
don't include AI as part of the specification for TUNES, and we aren't
going to go out of our way to make AI easy to do.  However, I'm willing to
discuss the concepts with you.  But I don't even know what anyone means by
"AI".  It's even more vague than "OO" (to me).

> > I can imagine a world where I can
> > run some ActiveX plugin, whether or not I have an x86 processor and
> > Microsoft Windows.
> 
> So Tunes is Freedows to? It's gonna let you run binaries that rely on
> the presence of many proprietary operating system libraries, providing
> the functionality of WINE and then some? Sure, this would be cool, and
> not require artificial intelligence, but kind of hard to do, no?

No.  In fact, there's no requirement that TUNES include support for any
existing system.  It would be nice, and it will probably be easy to add
once the system is done, but I'll let someone else do it.

David Manifold <dem@tunes.org>