Parallel languages and their implementations differ from each other in many aspects. The most important differences from the point of interoperating with components written using different programming paradigms are the number of concurrent tasks allowed within a process and the way control is transferred between these tasks.