Resistance to Erlang

David Hopwood <>
Tue Apr 12 18:54:44 CEST 2005


Pascal Brisset wrote:
> David Hopwood writes:
>  > To correct a minor technical point, Erlang supports asynchronous message passing.
>  > The pi calculus uses synchronous message passing, which is a quite different
>  > model.
> 
> Actually there are asynchronous variants of the pi-calculus
> (Boudol, Honda-Tokoro).

There are asynchronous process calculi, yes. They're sufficiently different
from the original pi calculus that I think they should really be called
something else.

> Another difference is that the pi-calculus allows dynamic creation
> of communication channels. Processes can send *and receive* on any
> channel they know, which is an implementor's nightmare.

Not really. Erlang allows dynamic creation of processes, and dynamic
channels can be implemented in terms of dynamic processes fairly
straightforwardly (in an asynchronous setting).

I agree with Roger Price's point about the pi calculus being rather low
level. The actor model is a closer match to Erlang. Pict changes the
pi calculus to be more like the actor model.

> Having receive queues as first-class values could be interesting, through.

The pet language I'm designing has first-class receive queues. Actually
it splits the send and receive facets and makes them both first class;
you can attach a receive facet to a fair merge of several send facets.
This turns out to be very useful in dealing with fairness issues, and it
allows expressing several variants of message passing concurrency in the
same language.

-- 
David Hopwood <>




More information about the erlang-questions mailing list