in scala.concurrent
object pilib

object pilib
extends java.lang.Object
with scala.ScalaObject
Library for using Pi-calculus concurrent primitives in Scala. As an example, the definition of a two-place buffer using the pilib library looks like:
def Buffer[a](put: Chan[a], get: Chan[a]): unit = {
  def B0: unit = choice ( put  { x => B1(x) } );    
  def B1(x: a): unit = choice ( get(x)  B0, put  { y => B2(x, y) } );
  def B2(x: a, y: a): unit = choice ( get(x)  B1(y) );
  B0
}
see:
PiLib: A Hosted Language for Pi-Calculus Style Concurrency
author:
Vincent Cremet, Martin Odersky

Constructor Summary
def this



Class Summary
class Chan [ a ]
Name on which one can emit, receive or that can be emitted or received during a communication.
class GP [ a ]
Typed guarded process.
class Product [ a ]

abstract class Spawn
Run several processes in parallel using the following syntax: spawn < p_1 | ... | p_n >
case class Sum

class UChan
Untyped channel.
case class UGP
An untyped guarded process.


Def Summary
def choice [ a ] ( s : pilib.this.GP[a]* ) : a
Pi-calculus non-deterministic choice.


Constructor Detail
def this

Def Detail
def choice [ a ]( s : pilib.this.GP[a]* ) : a
Pi-calculus non-deterministic choice.