Communicating Sequential Processes (CSP)

by | Sep 5, 2018 | Computers and Technology, Mathematics | 0 comments

Communicating Sequential Processes, or CSP, is a language for describing patterns of interaction. It is supported by an elegant, mathematical theory, a set of proof tools, and an extensive literature. The book Communicating Sequential Processes was first published in 1985 by Prentice Hall International (who have kindly released the copyright); it is an excellent introduction to the language, and also to the mathematical theory.

This is a book for the aspiring programmer, the programmer who aspires to greater understanding and skill in the practice of an intellectually demanding profession. It is designed to appeal first to a natural sense of curiosity, which is aroused by a new approach to a familiar topic. The approach is illustrated by a host of examples drawn from a wide range of applications, from vending machines through fairy stories and games to computer operating systems. The treatment is based on a mathematical theory, which is described by a systematic collection of algebraic laws.

The ultimate objective of the book is to convey an insight which will enable the reader to see both current and future problems in a fresh light, in which they can be more efficiently and more reliably solved; and even better, they can sometimes be avoided.

The most obvious application of the new ideas is to the specification, design, and implementation of computer systems which continuously act and interact with their environment. The basic idea is that these systems can be readily decomposed into subsystems which operate concurrently and interact with each other as well as with their common environment. The parallel composition of subsystems is as simple as the sequential composition of lines or statements in a conventional programming language.

This insight brings practical benefits. Firstly, it avoids many of the traditional problems of parallelism in programming-interference, mutual exclusion, interrupts, multithreading, semaphores, etc. Secondly, it includes as special cases many of the advanced structuring ideas which have been explored in recent research into programming languages and programming methodology’the monitor, class, module, package, critical region, envelope, form, and even the humble subroutine. Finally, it provides a secure mathematical foundation for avoidance of errors such as divergence, deadlock and non-termination, and for achievement of provable correctness in the design and implementation of computer systems.

The material of this book has been tested by presentation in informal workshops as well as on formal academic courses. It was first designed for a onesemester Master’s course in software engineering, though most of it could be presented in the final or even the second year of a Bachelor’s degree in computing science. The main prerequisite is some acquaintance with high-school algebra, the concepts of set theory, and the notations of the predicate calculus. These are summarised on the first page of the glossary of symbols just after this preface. The book is also a suitable basis for an intensive one-week course for experienced programmers. In such a course, the lecturer would concentrate on examples and definitions, leaving the more mathematical material for later private study. If even less time is available, a course which ends after Chapter 2 is quite worthwhile; and even in a single hour’s seminar it is possible by careful selection, to get as far as the edifying tale of the five dining philosophers.

Communicating Sequential Processes (CSP)

by Tony Hoare (PDF) – 260 pages

Communicating Sequential Processes (CSP) by Tony Hoare

Related Posts

57 Computer History Videos, Documentaries and Ebooks

57 Computer History Videos, Documentaries and Ebooks

Computing is the bedrock technology that fuels the homes of billions of people around the world. It offers endless possibilities for producing, sharing, and saving information. In this article, a list originally maintained by Thomas Watson, recompiled and cleaned, takes a look at some of the most important innovations in computing history. It covers information from as early as 1953, right down to 2016, in various forms of folklores, recordings, documentaries, interviews, lectures and movies.

136 Free Scientific Articles, Thesis and Reports on Deep Learning for Music

136 Free Scientific Articles, Thesis and Reports on Deep Learning for Music

Over the last several years, a new area of research called deep learning has taken the machine learning community by storm, delivering very promising results in all areas of speech and image recognition. However, one missing link is the lack of an accessible and easy-to-use open-source deep learning library for the music and/or audio research community. In this post we will introduce you to scientific articles, thesis and reports that use deep learning approaches applied to music. The documents are generally in PDF formats, sorted by years and paired with source codes if they’re available.

181 Articles, Websites and Resources about Diversity and Inclusion in Technology

181 Articles, Websites and Resources about Diversity and Inclusion in Technology

This collection includes postings, articles, talks, actionable tools, conferences, social media advocates, and other resources on diversity, specifically diversity in technology. The list’s goal is to provide quick access to diversity information to tech companies and communities that want to do more in their everyday actions to make the tech industry a more inclusive place, as well as to individuals who want to learn more about topics related to diversity and equity in the tech field.