This book is a celebration of Leslie Lamport's work on concurrency, interwoven in four-and-a-half decades of an evolving industry: from the introduction of the first personal computer to an era when parallel and distributed multiprocessors are abundant.
His works lay formal foundations for concurrent computations executed by interconnected computers. Some of the algorithms have become standard engineering practice for fault tolerant distributed computing – distributed systems that continue to function correctly despite failures of individual components. He also developed a substantial body of work on the formal specification and verification of concurrent systems, and has contributed to the development of automated tools applying these methods.
Part I consists of technical chapters of the book and a biography. The technical chapters of this book present a retrospective on Lamport's original ideas from experts in the field. Through this lens, it portrays their long-lasting impact. The chapters cover timeless notions Lamport introduced: the Bakery algorithm, atomic shared registers and sequential consistency; causality and logical time; Byzantine Agreement; state machine replication and Paxos; temporal logic of actions (TLA). The professional biography tells of Lamport's career, providing the context in which his work arose and broke new grounds, and discusses LaTeX – perhaps Lamport's most influential contribution outside the field of concurrency. This chapter gives a voice to the people behind the achievements, notably Lamport himself, and additionally the colleagues around him, who inspired, collaborated, and helped him drive worldwide impact. Part II consists of a selection of Leslie Lamport's most influential papers.
This book touches on a lifetime of contributions by Leslie Lamport to the field of concurrency and on the extensive influence he had on people working in the field. It will be of value to historians of science, and to researchers and students who work in the area of concurrency and who are interested to read about the work of one of the most influential researchers in this field.
Edited by:
Dahlia Malkhi
Imprint: Association of Computing Machinery,U.S.
Country of Publication: United States
Dimensions:
Height: 235mm,
Width: 191mm,
Spine: 21mm
Weight: 842g
ISBN: 9781450372701
ISBN 10: 1450372708
Pages: 365
Publication Date: 30 September 2019
Audience:
Professional and scholarly
,
Undergraduate
Format: Hardback
Publisher's Status: Active
Preface Photo and Text Credits Introduction The Computer Science of Concurrency: The Early Years PART I TECHNICAL PERSPECTIVES ON LAMPORT'S WORK Shared Memory and the Bakery Algorithm The Notions of Time and Global State in a Distributed System Byzantine Faults State Machine Replication with Benign Failures Formal Specification and Verification Biography PART II SELECTED PAPERS A New Solution of Dijkstra's Concurrent Programming Problem Time, Clocks, and the Ordering of Events in a Distributed System How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs The Byzantine Generals Problem The Mutual Exclusion Problem: Part I—A Theory of Interprocess Communication The Mutual Exclusion Problem: Part II—Statement and Solutions The Part-Time Parliament References Index Biographies
Dahlia Malkhi received her Ph.D., an M.Sc. and a B.Sc. in computer science from the Hebrew University of Jerusalem. She is currently a lead researcher at Calibra. She is an ACM fellow (2011), serves on the Simons Institute Advisory Board, on the MIT Cryptocurrency Journal Advisory Board, and on the editorial boards of the Distributed Computing Journal. Her research career spans between industrial research and academia: 2014–2019, founding member and principal researcher at VMware Research; 2004–2014, principal researcher at Microsoft Research, Silicon Valley; 1999–2007, associate professor at the Hebrew University of Jerusalem; 1995–1999, senior researcher, AT&T Labs-Research, New Jersey. She has research interest in applied and foundational aspects of reliability and security in distributed systems.