Related articles |
---|
[9 earlier articles] |
Re: Embeddable and Extensible Languages petela@gocougs.wsu.edu (PlayDough) (2005-01-15) |
Re: Embeddable and Extensible Languages thant@acm.org (Thant Tessman) (2005-01-22) |
Re: Embeddable and Extensible Languages jc.lelann@wanadoo.fr (Jean-Christophe Le Lann) (2005-01-22) |
Re: Embeddable and Extensible Languages gneuner2@comcast.net (George Neuner) (2005-01-24) |
Re: Embeddable and Extensible Languages petela@gocougs.wsu.edu (PlayDough) (2005-01-25) |
Re: Embeddable and Extensible Languages petela@gocougs.wsu.edu (PlayDough) (2005-01-25) |
Re: Embeddable and Extensible Languages lex@cc.gatech.edu (Lex Spoon) (2005-01-25) |
Re: Embeddable and Extensible Languages gneuner2@comcast.net (George Neuner) (2005-01-30) |
From: | Lex Spoon <lex@cc.gatech.edu> |
Newsgroups: | comp.compilers |
Date: | 25 Jan 2005 23:24:16 -0500 |
Organization: | Georgia Institute of Technology |
References: | 05-01-040 05-01-060 05-01-085 |
Keywords: | interpreter |
Posted-Date: | 25 Jan 2005 23:24:16 EST |
George Neuner <gneuner2@comcast.net> writes:
> On 15 Jan 2005 20:57:49 -0500, "PlayDough" <petela@gocougs.wsu.edu>
> wrote:
>
> >PlayDough wrote:
> >
> >... is there a language that guarantees that x1's interpreter
> >and x2's interpreter will not collide in threads?
>
> What you want is a sandbox.
This kind of thing is exactly what the E language was designed for.
http://www.erights.org
The language has some similarity to Scheme. It's a small orthogonal
language, using let a lot, and it has a rich list syntax which is akin
to Scheme's backquote syntax for making s-expressions.
E supports independent threads via "vats". To create a new
independent thread, you simply create a new vat. Code inside one vat,
can create a new vat if it wants and interact with it. Each object in
the system belongs to exactly one vat. Objects in one vat only
interact with objects in another vat by passing messages, in the
network sense; OO messages are simulated on top of this by using
"eventual sends" and "promisses". Objects within one vat can interact
in the call-and-return semantics of most OO languages.
These guys have thought carefully about what it means to create a vat.
A vat starts out *completely* independent of the rest of the world,
and in fact can do nothing useful. It can't create a file, open a
window, or veen talk to any other vat that already exists. In order
for a vat to communicate with the outside world, someone outside the
vat must pass in some object references for the vat to talk to.
-Lex
Return to the
comp.compilers page.
Search the
comp.compilers archives again.