scala.concurrent

pilib

object pilib extends AnyRef

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]) {
   def B0 { choice ( put * { x => B1(x) } ) }
   def B1(x: a) { choice ( get(x) * B0, put * { y => B2(x, y) } ) }
   def B2(x: a, y: a) { choice ( get(x) * B1(y) ) }
   B0
 }
 

Inherits

  1. AnyRef
  2. Any

Type Members

  1. class Chan[A] extends UChan with (A) ⇒ Product[A]

    Name on which one can emit, receive or that can be emitted or received during a communication

  2. class GP[a] extends AnyRef

    Typed guarded process

  3. class Product[A] extends AnyRef

  4. class Spawn extends AnyRef

    Run several processes in parallel using the following syntax: spawn < p1 |

  5. class Sum(gs: List[UGP]) extends Product

  6. class UChan extends AnyRef

    Untyped channel

  7. class UGP(n: UChan, polarity: Boolean, v: Any, c: (Any) ⇒ Any) extends Product

    An untyped guarded process

Value Members

  1. def choice[A](s: GP[A]*): A

    Pi-calculus non-deterministic choice

  2. def equals(arg0: Any): Boolean

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence

  3. def hashCode(): Int

    Returns a hash code value for the object

  4. val spawn: Spawn

  5. def toString(): String

    Returns a string representation of the object