- Paperback: 174 pages
- Publisher: Cambridge University Press; 1 edition (June 13, 1999)
- Language: English
- ISBN-10: 0521658691
- ISBN-13: 978-0521658690
- Product Dimensions: 6 x 0.5 x 9 inches
- Shipping Weight: 11.4 ounces (View shipping rates and policies)
- Average Customer Review: 3 customer reviews
- Amazon Best Sellers Rank: #593,207 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Communicating and Mobile Systems: The Pi Calculus 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
"The monograph is short, self-contained, and extremely readable. It covers all the important points in enough detail for the subtleties involved to be understood, while still being general enough that the material is applicable to other concurrent calculi variants..." Professor Riccardo Pucella, Cornell University
"The presentation is remarkably self-contained and clear...an excellent reference for researchers in the field." Mathematical Reviews
Robin Milner introduces a new way of modelling communication that reflects its central position in computing. Everything is introduced by means of examples, such as mobile phones, job schedulers or vending machines, but the aim of the book is to develop a theory, the -calculus, in which these things can be treated rigorously. The internet falls within its scope just as much as computer programs, data structures, algorithms and programming languages. This book is the long-awaited first exposition of the subject and will be welcomed by professionals, and their students.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The book is divided into two parts, with the first part being a general overview of how to model or describe concurrent communicating systems, and the second an overview of the pi-calculus. In the first part, the author wants to make a distinction between models of computing that involve `computation', and those that involve `interactional' behavior. The former is done using Turing machines and the lambda calculus, while the latter is illustrated in the pi-calculus. To get to the pi-calculus, the author wants first to generalize the classical theory of automata to situations where the automata run concurrently and interact with each other. He emphasizes that interactive behavior is best represented by a non-deterministic automaton which cannot be equated (behaviourally) with a deterministic automaton.
In order to justify this assertion more rigorously, the author discusses the notion of `bisumulation' of nondeterministic sequential processes, as essentially a warm-up for the treatment of concurrent processes. This notion defines an equivalence relation called `bisimilarity' which respects the nondeterminism of these processes. When dealing with concurrent processes, the makes a distinction between actions that are externally observable from those which are internal (interactions between the components themselves). In addition, one needs a refined notion of when concurrent processes are equivalent in some sense, since their effects or behaviors, whether observable or not, may essentially be equivalent. Thus the author discusses the notion of `structural congruence' and that of `strong equivalence.' The latter is a generalization of the notion of bisimulation, but as it turns out one can show that every concurrent system is strongly congruent to a sequential one. This and the fact that strong congruence is still sensitive to the amount of interaction between internal processes motivates the author to define `weak bisimulation'.
The pi-calculus is viewed as a `calculus of mobile processes.' Introduced in 1992 by the author, it views the movement of a process as due entirely to the movement of its links, i.e. in a virtual space of linked processes. The emphasis in the pi-calculus is on certain patterns of behavior that are respected by a given family of systems, and not on `type systems' in the usual programming paradigm. Data is to be represented by a name, the latter of which is essentially a communication channel. The author first defines the pi-calculus for the case where a message consists of exactly one name. Readers familiar with the earlier work of the author will find the notation he uses familiar, but those who are not will find it somewhat peculiar, and it takes some getting used to. This is due partially to the fact that a name can be bound in an input action but can be free in an output action. The pi-calculus does have a diagrammatic representation, and this is elucidated upon in the book. Data structures, so important in the usual computing paradigms, are viewed in the pi-calculus as a special kind of process. Several examples are given on how to apply the pi-calculus to some of the usual situations encountered in programming. The paradigms of object-oriented and functional programming can be realized in the pi-calculus as the author shows using a type system for the pi-calculus. Processes, as well as data, can be sent as messages. The type systems he uses involve as expected the `sorts' and `sortings' that enable the classification of the sorts of information that can be transmitted in an interaction.
So is the pi-calculus a different computing paradigm that is to be distinguished from Turing computability or the lambda calculus? One should probably not think of it as such, since the author shows in the book that the lambda calculus can be expressed in the pi-calculus formalism. In addition, one should not expect that the pi-calculus processes require something other than a Turing machine for their computation. It would indeed be a surprise if this were the case, but as it stands now there is no indication that there are processes computed from the standpoint of the pi-calculus that cannot be computed from the standpoint of Turing machines. The Church-Turing thesis therefore remains in effect for the pi-calculus.
If you are a student or researcher in the field of formal methods for describing and reasoning on communicating systems the book is definitely a must: It introduces quickly many key concepts of pi-calculus, bisimulation and observational semantics. It is also well written, ideal for students. Its plus is the strong link between CCS and pi-calculus, and the fact that, coming after a long experience with the zillions of variants of the pi-calculus, this presents a very clean and self-contained variant. This is also its downside: Some concepts are not introduced, like early and late variants of strong bisimulations. Two semantics are presented, labelled transition and (unlabelled) reduction systems, but without explaining why, nor any equivalence semantics is given for the reduction system. As a result, it seems that reduction semantics is there just as an exercise, but that we do not really need it. More aware readers would possibly prefer other books, like e.g. Sangiorgi and Walker, which appears as a very comprehensive account of pi and its variants.
Also note that the book's purpose is presenting a theory of equivalence between communicating systems, not applications of this theory (the examples just serve the purpose to enlighten the concepts). This implies, for example, that it is not a textbook on how you can write and prove correctness of concurrent/distributed software, nor a collection of algorithms.