Interprocess communication is ubiquitous in modern computing, appearing most commonly as inputs, outputs, and messaging. This paper formalizes interprocess communication based on the involvement of entities in a process, and how processes determine which entities are involved in other processes. It provides dimensions for characterizing interprocess communication, and places common process language capabilities within them. It provides a formalization of inputs, outputs, and messaging in extensions of the Process Specification Language (PSL), to reduce ambiguity and increase expressiveness in commonly used process languages. The paper also shows how to incrementally translate common process language elements to PSL, resulting in much smaller expressions, for readability and efficient inference.