Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010340978 | QA76.9.D5 V37 2013 | Open Access Book | Book | Searching... |
Searching... | 30000010285199 | QA76.9.D5 V37 2013 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
An introduction to fundamental theories of concurrent computation and associated programming languages for developing distributed and mobile computing systems.
Starting from the premise that understanding the foundations of concurrent programming is key to developing distributed computing systems, this book first presents the fundamental theories of concurrent computing and then introduces the programming languages that help develop distributed computing systems at a high level of abstraction. The major theories of concurrent computation--including the π-calculus, the actor model, the join calculus, and mobile ambients--are explained with a focus on how they help design and reason about distributed and mobile computing systems. The book then presents programming languages that follow the theoretical models already described, including Pict, SALSA, and JoCaml. The parallel structure of the chapters in both part one (theory) and part two (practice) enable the reader not only to compare the different theories but also to see clearly how a programming language supports a theoretical model.
The book is unique in bridging the gap between the theory and the practice of programming distributed computing systems. It can be used as a textbook for graduate and advanced undergraduate students in computer science or as a reference for researchers in the area of programming technology for distributed computing. By presenting theory first, the book allows readers to focus on the essential components of concurrency, distribution, and mobility without getting bogged down in syntactic details of specific programming languages. Once the theory is understood, the practical part of implementing a system in an actual programming language becomes much easier.
Author Notes
Carlos A. Varela is Associate Professor in the Department of Computer Science at Rensselaer Polytechnic Institute.
Reviews 1
Choice Review
This book provides a very gradual yet thorough illustration of concurrent programming theory and methods. The concepts are defined univocally and precisely, and the theoretical parts of the volume are very approachable. Varela (Rensselaer Polytechnic Institute) made a deliberate choice to present the content using a gradual learning curve. This choice benefits general self-learners the most, but it will also be appreciated by senior undergraduate students looking to learn distributed computing and its theoretical underpinnings. As a result, the book's audience is broader than expected. There is a successful mix of theory and practice, although the proportions vary for each chapter. A number of engaging and sometimes challenging exercises round out the 11 chapters. The online supplement is useful since it contains all the code in the book in downloadable form. The text's accessibility, methodical presentation style, wealth of examples, and online supplement make Programming Distributed Computing Systems a valuable resource for advanced students and practitioners. Summing Up: Highly recommended. Upper-division undergraduates, graduate students, researchers/faculty, and professionals/practitioners. L. Benedicenti University of Regina
Table of Contents
Foreword | p. ix |
Preface | p. xi |
Acknowledgments | p. xv |
1 Introduction | p. 1 |
2 ¿ Calculus | p. 11 |
I Theoretical Models of Concurrency, Distribution, and Mobility | p. 33 |
3 ¿ Calculus | p. 37 |
4 Actors | p. 59 |
5 Join Calculus | p. 79 |
6 Ambient Calculus | p. 95 |
7 Formalizing Concurrency, Distribution, and Mobility | p. 111 |
II Programming Languages for Distributed and Mobile Computing | p. 139 |
8 Programming with Processes | p. 145 |
9 Programming with Actors | p. 165 |
10 Programming with Join Patterns | p. 205 |
11 Social Networking Example | p. 223 |
References | p. 259 |
Index | p. 267 |