Phil Trinder: No Process Algebra for Links

A suggestion for Links from Phil Trinder.

No Process Algebra for Links

At the Edinburgh Links meeting Jocaml-style coordination was proposed
for links. I'd argue that this is *not* a good design decision, even
though many aspects of the Jocaml design are exactly right.

The key issue is that Jocaml coordination is based on process algebra,
introducing a second stateful notation to Links and causing an impedance
mismatch between the stateless expression language and process
algebra, complicating both language and reasoning.

As Links will require stateful constructs for I/O etc, perhaps
monadic, a far simpler design is to reuse these constructs to specify
and reason about distributed coordination. The programmer specifies
both computation and coordination in a single reduction-oriented
semantic framework. Moreover the programmer can reason equationally
without needing to resort to the process algebra for coordination
aspects. In short, it's unnecessary to have two stateful notations in
Links, one for computation and one for coordination.

The alternative distributed coordination constructs envisaged include
channels similar to those in Jocaml: higher-order and
polymorphic. However the stateful operations on channels are probably
monadic with associated fold & unfold identifies. As Joe Armstrong
recommends, processes should be first class to facilitate fault
tolerance, and the possibility of higher-order fault tolerance
abstractions like Erlang behaviours. First class continuations would
enable the construction of mobile agents.

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?