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
>