Re: Embeddable and Extensible Languages

Lex Spoon <lex@cc.gatech.edu>
25 Jan 2005 23:24:16 -0500

          From comp.compilers

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)
| List of all articles for this month |

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


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.