@InProceedings{Cook95, title = "{A} fast {C} {K}ernel for {P}ortable occam {C}ompilers", author= "Cook, Barry M.", editor= "Nixon, Patrick", pages = "47--65", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper describes an experiment in providing explicitly parallel constructs in the style of occam within a functional programming environment. The work is based upon the monadic style proposed and described by Moggi, Wadler, Peyton Jones and others. The approach is pragmatic and conservative in that parallelism is treated as an imperative feature implemented by monadic functions. Overloading is used to provide a class of channel protocols. As in occam, data transmitted over a channel is fully evaluated and must be of ground type. An algorithm for checking channel usage in the presence of dynamic process and channel creation is described. The work can be described as an extension of functional notations allowing for explicit imperative-style parallelism. Alternatively, one could view it as extending the vocabulary of the occam language to allow for recursion, higher-order constructions and dynamic process and channel creation." }