# The Essential Leslie Lamport

DevFeed: [The Essential Leslie Lamport](<https://devfeed.tech/articles/the-essential-leslie-lamport-12454.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2014/03/30/lamport-pub.html>)

Author: Marc Brooker

Published: 2014-03-30T00:00:00Z

Content type: opinion

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [concurrent-programming](<https://devfeed.tech/tags/concurrent-programming.md>), [programming](<https://devfeed.tech/tags/programming.md>), [publications](<https://devfeed.tech/tags/publications.md>), [science](<https://devfeed.tech/tags/science.md>)

## AI overview

The article recommends selected Leslie Lamport publications, focusing on the bakery algorithm for mutual exclusion in concurrent programming and on the ordering of events in distributed systems using logical clocks. It presents these works as particularly elegant and valuable for understanding computer science.

## Source excerpt

The Essential Leslie Lamport Some of my favourite Leslie Lamport publications. After it was announced that Leslie Lamport had won the 2013 A.M. Turing award, the link to his list of publications found popularity on most of the tech-related sites I visit. It's an excellent page, with a long (and growing) list of Lamport's publications, and witty comments by the author on each one. The whole list is worth a read, but can feel overwhelming, so I thought I'd try distill it down it some papers that I feel are really worth reading, if you read nothing else on that page. The criteria are: I like these papers for some reason. I'd probably make a different list if I wrote this post again next week. The algorithm is quite simple. It is based upon one commonly used in bakeries, in which a customer receives a number upon entering the store. The holder of the lowest number is the next one served. In A New Solution of Dijkstra's Concurrent Programming Problem Lamport describes the mutual exclusion problem formally posed by Dijkstra, and presents a solution to it. The bakery algorithm is remarkable. Unlike the earlier solutions, which depended on shared memory locations with fairly restrictive behaviors, the bakery algorithm works without any underlying mutual exclusion. Lamport's invention, or discovery, of this algorithm seems to kicked off a cascade of other solutions. Szymanski's, which seems to have been the first to offer both strong fairness and use of a fixed number of shared variables of a bounded size, is particularly interesting. Why this is worth reading: The bakery algorithm, while not very relevant to today's concurrent software due to changes in memory models, is very simple, very beautiful, and solves a complex problem in an innovative way. It's simply a beautiful piece of computer science. In a distributed system, it is sometimes impossible to say that one of two events occurred first. The relation "happened before" is therefore only a partial ordering of the even