Even with all the interest in parallelism and parallel processing, there is still something missing. This book is about how to design parallel programs from their specification. It follows from the Owicki/Gries theory and can be put to work for the formal development of multiprograms regardless of whether these algorithms are distributed or not.