Programming Distributed Computing Systems: A Foundational Approach
- Length: 314 pages
- Edition: 1
- Language: English
- Publisher: The MIT Press
- Publication Date: 2013-05-17
- ISBN-10: 0262018985
- ISBN-13: 9780262018982
- Sales Rank: #1063837 (See Top 100 Books)
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.
Table of Contents
Chapter 1 Introduction
Chapter 2 λ Calculus
Part I Theoretical Models of Concurrency, Distribution, and Mobility
Chapter 3 π Calculus
Chapter 4 Actors
Chapter 5 Join Calculus
Chapter 6 Ambient Calculus
Chapter 7 Formalizing Concurrency, Distribution, and Mobility
Part II Programming Languages for Distributed and Mobile Computing
Chapter 8 Programming with Processes
Chapter 9 Programming with Actors
Chapter 10 Programming with Join Patterns
Chapter 11 Social Networking Example