Communicating sequential processes (Prentice-Hall International series in computer science)