First class VMs

Michael Korns mkorns@ix.netcom.com
Mon, 28 Apr 1997 09:19:55 -0700


Alaric,

First of all my son is named Alaric. So you have my vote right from the
start.

> Say, since we're having a VM, it'd be a real good idea to make sure
> that virtual machines are first class! This is something I have
> in my own OS idea, and they work something like first-class
> environments, 'cept they can only be extended, not changed
> (makes stuff faster, since compilers can assume more).
> 
> BTW bindings in this language (ARGOT) are immutable unless
> declared otherwise. This means that the compiler gets to
> assume even more, which is nice - constant propogation can
> go a long way... 

I like the "First Class" design criteria. It works well in Scheme and in
AgentBase. Can you give us a reference for further reading?

----------
> From: Alaric B. Williams <alaric@abwillms.demon.co.uk>
> To: LispOS Project <lispos@math.gatech.edu>
> Subject: First class VMs
> Date: Monday, April 28, 1997 12:02 AM
> 
> 
> Say, since we're having a VM, it'd be a real good idea to make sure
> that virtual machines are first class! This is something I have
> in my own OS idea, and they work something like first-class
> environments, 'cept they can only be extended, not changed
> (makes stuff faster, since compilers can assume more).
> 
> BTW bindings in this language (ARGOT) are immutable unless
> declared otherwise. This means that the compiler gets to
> assume even more, which is nice - constant propogation can
> go a long way... 
> 
> Anyway, back to environments; the system can provide a standard
> language environment with purely closed-system primitives in;
> addition, if, cond, etc.
> 
> Then modules can be inserted into the environment. These come from
> two sources; first of all are interface modules, which provide
> services from the hosting environment to the child environment.
> Basically, a list of bindings is registered under a module name.
> 
> The second source is source code objects, which are things like
> source files, imported applets, and all that malarky.
> 
> Now, examples of usage - well, Web browser like things can grab
> applets and stuff them into environments that have access primitives
> inserted by the browser for things like drawing into the applet's
> screen area, etc, so the applet expects those primitives to be
> in it's environment.
> 
> The GUI model works accross networks, so for efficiency, we
> ask the remote object to return a GUI applet, which is run
> by the user agent in an environment containing primitives for
> the usual GUI operations, and RPC communications with the object
> this applet is representing, so it can grab the object's data and
> send out orders.
> 
> Hope this is useful...
> 
> 
> ABW
> --
> Alaric B. Williams (alaric@abwillms.demon.co.uk)
> 
>    ---<## OpenDOS FAQ ##>---
> 
> Plain HTML: http://www.delorie.com/opendos/faq/
>             http://www.deltasoft.com/faq.html
> 
> Fancy HTML: http://www.deltasoft.com/faq0000.html
>