@InProceedings{Friborg09, title = "{T}hree {U}nique {I}mplementations of {P}rocesses for {P}y{CSP}", author= "Friborg, Rune Møllegard and Bjørndalen, John Markus and Vinter, Brian", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "277--292", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "In this work we motivate and describe three unique implementations of processes for PyCSP: process, thread and greenlet based. The overall purpose is to demonstrate the feasibility of Communicating Sequential Processes as a framework for different application types and target platforms. The result is a set of three implementations of PyCSP with identical interfaces to the point where a PyCSP developer need only change which implementation is imported to switch to any of the other implementations. The three implementations have different strengths; processes favors parallel processing, threading portability and greenlets favor many processes with frequent communication. The paper includes examples of applications in all three categories." }