Three Unique Implementations of Processes for PyCSP

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 imple- mentations 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 im- plementations. The three implementations have different strengths; processes favors parallel processing, threading portability and greenlets favor many processes with fre- quent communication. The paper includes examples of applications in all three cate- gories.