ssadams at us.ibm.com
Fri Apr 10 01:11:44 UTC 1998
I tried a couple of years ago to get the Java(Soft) folks interested in
pluggable VMs to be able to run Smalltalk, etc. on the Java VM. I guess
it was not really in their interest. But we could certainly do the
reverse trick! The basic idea is to register VMs then have special
'switch' bytecodes to dynamically swap between bytecode dispatchers (e.g.
for page layout, mathematics, Java, etc., etc.). The VMs--you could
think of them as custom microcode machines--could even be dynamically
loaded, at least on systems which support dynamic loading. It is very
modular and if you can keep a VM small enough to stay in cash, probably
as fast as native code.
This is very much akin to an idea I've been kicking around using "content and
rendering engine" metaphor.
Think of a behavioral description (like bytecodes, source codes, rules, etc)
and a behavioral rendering engine (interpreter, compiler, rule engine).
As on the web, different rendering engines may invoked by a browser to handle
the content of a particular page. So, instead of a one-size-fits-all language,
you have languages fit or purpose. Of course, this is from the VM
perspective. I want my Squeak objects to "know" how to render themselves in
various interesting ways. Anyone out there remember "Well Defined Objects"
(KSC circa 1992)? This is not really a violation of the MVC separation of
concerns idea as much as it is a stronger emphasis on object self knowledge,
like the self defining data tape in Alan's OOPSLA talk. But that's another
thread that should be discussed another time.
Sam S. Adams, Distinguished Engineer, IBM Network Computing Software Division
tie line 444-0736, outside 919-254-0736, email: ssadams at us.ibm.com
<<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, I Corinthians 1:10>>
More information about the Squeak-dev