Re: Question about E's history.

Constantine Plotnikov <[email protected]> Sun, 12 Jun 2011 14:54:59 +0400
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
This actually leads to question about origins of another idea that I learned
from E.

In E, several asynchronous components could share single event loop. Because
of this, the components are relatively cheap. In most other actor model
implementations, each component has own inbox and messages in it could be
retrieved in actor dependent order (for example priority messages could be
dispatched first).

When implementing AsyncScala and other implementations of E ideas, I have
noticed that it would be almost impossible to implement sane asynchronous
operation composition DSL without transparent sharing local event loop like
it was done in E. Local event loop provides context where memory could be
safely shared. In fact, the entire E Vat corresponds to classical actor.
 The E objects are in fact some kind of sub-actor. And this makes
designating event handler trivial.

This idea is not uncommon to computer science. The GUI event loop implements
this idea to compose handlers for incoming events. Just imagine how GUI
event loop looked, if it was a single Erlang actor. Actually many Java
programs that I have seen use AWT event loop to organize safe interactions
of components (for example, IntelliJ IDEA uses GUI event loop to coordinate
writes to file system through its virtual file system layer). When something
should be done with shared component either inovkeLater or invokeAndWait is
called.

It would be interesting to know how this idea of Vat comes to E. I'm also
interested whether there are other Actor model implementations (that declare
that they such) where asynchronous components could share single event loop.

Thanks,
Constantine

On Sun, Jun 12, 2011 at 1:38 PM, Dean Tribble <[email protected]> wrote:

> Some E promise history:
>
> E promises derive primarily from Joule channels, by way of the Xanadu
> promise system. Joule was a massively concurrent programming language that
> was a deliberate cross between actors and concurrent logic programming
> languages.  The Xanadu promise system was created by applying Joule channels
> to a sequential language for pipe-lined, client-server communication. It was
> contemporary with and independent of the Argus promises system. The E
> language generalized that to "islands of sequential programming
> communicating with promises".
>
> On Sat, Jun 11, 2011 at 7:47 PM, Jonathan Rees <[email protected]> wrote:
>
>> Is this relevant as precedent? It was pretty well developed by 1984
>> http://en.wikipedia.org/wiki/MultiLisp
>> but I don't know how well developed it was regarding pipelining. I suspect
>> they got the 'promise' idea from Hewitt.
>>
>> <http://en.wikipedia.org/wiki/MultiLisp>Jonathan
>>  <http://en.wikipedia.org/wiki/MultiLisp>
>> On Jun 11, 2011, at 4:23 PM, Mark S. Miller wrote:
>>
>> On Sat, Jun 11, 2011 at 12:01 PM, Tom Van Cutsem <[email protected]>wrote:
>>
>>> Hi Constantine,
>>>
>>> Having looked at various actor languages, I have not previously
>>> encountered the type of asynchronous composability that when-expressions
>>> provide. So E may be the first language to have introduced this feature.
>>>
>>> About E's origins: in the paper "Concurrency among strangers", there is a
>>> section titled "From objects to actors and back again" (section 11) which I
>>> feel is a good reference to work that inspired E: <
>>> http://www.erights.org/talks/promises/index.html>
>>>
>>> In general, I believe the actor model served as the greatest source of
>>> inspiration for E: <http://en.wikipedia.org/wiki/Actor_model>
>>>
>>> I know from Mark that promises in Liskov's Argus language were also a
>>> source of inspiration for promises in E.
>>>
>>
>> Not inspiration, but precedence and therefore credit. In 1989, Dean, I,
>> and others independently came up with a promise pipelining model similar to
>> Liskov and Shrira's promises as part of the Xanadu (aka Udanax Gold) work <
>> http://web.archive.org/web/20071023111712/http://www.sunless-sea.net/Transcripts/promise.html>.
>> Afterwards, we found out about their 1988 paper <
>> http://portal.acm.org/citation.cfm?idT016>, and so have consistently
>> given them credit for inventing the idea first, as they did.
>>
>> ...
>>
>> _______________________________________________
>> e-lang mailing list
>> [email protected]
>> http://www.eros-os.org/mailman/listinfo/e-lang
>>
>>
>
> _______________________________________________
> e-lang mailing list
> [email protected]
> http://www.eros-os.org/mailman/listinfo/e-lang
>
>

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang