p-Calculus Characterizations of some Practical ?-Calculus Reduction Strategies

We give π -calculus encodings of some reduction strategies that have been found useful in the functional programming community: call-byvalue, parallel call-by-value, call-by-need and call-by-process. The ease with which the π -calculus lends itself to expressing these different reduction strategies is remarkable. All four of our encodings can be ‘mixed and matched’ in that different reduction strategies can be applied to different parts of the program, as is routinely done in functional programming systems.