Storytelling About Lighthouses Criticizing Professor Dijkstra Considered Harmless

Total Page:16

File Type:pdf, Size:1020Kb

Storytelling About Lighthouses Criticizing Professor Dijkstra Considered Harmless Research Storytelling About Lighthouses Criticizing Professor Dijkstra Considered Harmless Introduction Perhaps it is fitting to begin with “Criticizing I have a growing sense that scientists of the 1940s, Professor Dijkstra Considered Harmless,” prompt- around the time of the Manhattan Project, devel- ed by this year’s 50th anniversary of Communica- oped a substantive toughness through the process tions of the ACM, its new leadership and an exciting of critical dialogue. They worked in an environment renaissance in the journal’s next half century. In in which not only did they not shy away from the January 2008 anniversary issue, the publication, colleagues’ criticism, they sought it out with the in honor of E.W. Dijkstra, reprinted his paper expectation that exposing their ideas to the harsh “Go-To Statement Considered Harmful,” the most light of criticism would enhance their scientific famous letter to the editor ever published in survival. Such dialogue made the work of science fun. Communications of the ACM. “Considered Harmful” became a Dijkstranian hallmark of critical This article is about criticism, about personal reflection. [1] My article is about an anniversary experiences and observations that lead to the of my own: Twenty-five years ago, I wrote my first By Sorin Istrail obvious conclusion that criticism should be letter to Professor Dijkstra. Julie Nguyen Brown Professor of encouraged and that it could and should be taught. Computational and Mathematical Dijkstra the critic Sciences and Professor of Computer In many ways, I envision collegial criticism serving Donald Knuth put it well in 1974: “A revolution Science the same function as lighthouses: On one hand, lighthouses signal safe harbor—sail on. On the is taking place in the way we write programs and other, they warn of rough and hazardous shoals— teach programming… It is impossible to read the beware and explore other routes. I am drawn to recent [Dijkstra] book, Structured Programming, lighthouses as symbols of how scientific truth is won. without having it change your life. The reasons for this revolution and its future prospects have been “ In many ways, I envision collegial criticism serving aptly described by E.W. Dijkstra in his 1972 Turing Award Lecture, ‘The Humble Programmer.’ ”[2] the same function as lighthouses: On one hand, Indeed, Dijkstra was an outspoken and critical visionary. A prolific writer, he authored more than lighthouses signal safe harbor—sail on. On the other, 1,300 papers, many written by hand in his precise and elegant script. They were essays and parables; they warn of rough and hazardous shoals—beware fairy tales and warnings; comprehensive explana- tion and pedagogical pretext. Most were about and explore other routes. I am drawn to lighthouses mathematics and computer science; others were trip reports that are more revealing about their as symbols of how scientific truth is won.” author than about the people and places visited. Such beacons are the motivation for “Storytelling This “Dijkstranian style” of writing flourished on About Lighthouses,” a series of articles for Conduit the frontier between technical computing science about inspiring scientists I’ve encountered in the and the philosophy substantiating its distin- random walk of my career. Telling such stories can guished development. be difficult, especially if they appear to be self-pro- It was his habit to copy each paper and circulate moting or of dubious authenticity. Yet stories about it to a small group of colleagues who would copy these luminaries are priceless—they should be and forward the papers to another limited group collected and shared, for they inspire long after of scientists. I have in my basement a box with their first telling. Certainly, one would prefer stories several hundred papers from the series. [3] I read consistent with the following two impressionistic them with joy and excitement and my love for principles: Axiom 0, Primary source material is prime; mathematics and computer science has been and Axiom 1, taken from the Romanian proverb, influenced in no small measure by his works. (The Dupa razboi multi viteji se-arata, roughly translated as University of Texas has since digitized the Dijkstra “After the war, many heroes show up.” I look forward to manuscripts, known as EWDs, and makes them your feedback and—in the spirit of collegial available online at http://www.cs.utexas.edu/ criticism—intriguing counterarguments, responses Professor Edsger W. Dijkstra users/EWD/. I hope the current generation of to my calls for priceless stories and your solutions to students and young scientists enjoys reading some my silly games for consideration in future Conduit of his papers and gets inspired.) articles ([email protected]). 10 Condu¡t Fall | Winter 2008 Research He offered criticism with a combination of with an urn and as many white balls and black balls dramatics and humor—an approach I liken to as needed—that emboldened me to contact him. Don Quixote tilting at windmills. (Imagine my (What is a “silly game”? What are the axioms for surprise when I met Dijkstra not far from a it? We’ll save that discussion for another time.) lighthouse in Newport and discovered that he resembled Peter O’Toole’s Quixote in the movie The first letter Man of La Mancha.) It was 1983 and I was a junior researcher at the Take for example EWD498, “How Do We Tell Computing Center of the University of Iasi, Truths that Might Hurt?” In it, Dijkstra wrote that Romania, just four years out from my Ph.D. I had “the use of COBOL cripples the mind; its teaching read Dijkstra’s paper on correctness and after should, therefore, be regarded as a criminal years of dreaming about corresponding with this offense” and “it is practically impossible to teach inspiring and mesmerizing man, I felt I finally good programming to students that have had had something to say. prior exposure to BASIC. As potential program- In my letter dated January 19, 1983, I solicited mers they are mentally mutilated beyond hope of his comment and guidance on a technical report regeneration.” (I am curious whether he com- I had sent him previously. It contained two mented about C++ or Java. Might you have a story programming puzzles: “The Father-in-Law vs. the to share about this?) Other titles hint at the Pajamas” and “On a Chinese Olympiad Problem.” passionate arguments of his favorite themes. [4] The technical report was inspired by Dijkstra’s Nothing and absolutely no one was safe, not the art of problem solving—his “silly games.” I “real” programmer, the “real” mathematician, the wanted so much to master his style—striving for electrical engineer, the industrial manager, the elegance in defining new puzzles, especially in “systems people” nor American computing science. the mathematical derivation of the algorithms [4] Not even von Neumann or Turing. “The that solved them. fathers of the field had been pretty confusing: “I would be very much obliged if you could have a John von Neumann speculated about computers look at the problems… and if they deserve such a and the human brain in analogies sufficiently wild favor, please give me a reply,” I wrote. “My deep to be worthy of a medieval thinker and Alan M. hope is that you like these problems, and maybe Turing thought about criteria to settle the use them in your celebrated conferences.” question of whether Machines Can Think, which we now know is about as relevant as the question But my January 19 letter also included a manuscript of whether Submarines Can Swim.” [5] I had written titled, “On the Facets of a Jewel.” In it, I pointed out a certain mathematical difficulty But whether he was lecturing on algorithm design, concerning the game with the urn and balls writing an essay on the need for rigorous math- described in EWD720. “My remarks point to some ematical thought or taking programmers to task, nice mathematical properties underlying the elegance and simplicity were Dijkstra’s common game and adding to its beauty. Shall I turn it into denominators. His demand for elegance was a publishable form?” I asked. based on his essential formation as a “pragmatic industrial mathematician.” As he wrote in I never shared the manuscript with anyone, but in EWD538, A Collection of Beautiful Proofs, “we have discussing my findings with colleagues, I told them I to fight chaos, and the most effective way of doing was considering sending the manuscript to Dijkstra. that is to prevent its emergence.” Some colleagues suggested otherwise. Pointing out One of Dijkstra’s core beliefs was in mathematical “some nice mathematical properties” and actually rigor as the foundation for reliable software design. meaning “I found a certain difficulty with your It was a philosophy he outlined in “Why problem” could be construed by this exceedingly Correctness Must be a Mathematical Concern,” tough perfectionist as a severe critique. I’d be an inspiring keynote address (later published as committing professional suicide, they said. EWD720) presented at the University de Liege, I did not consider my manuscript a critique at all. Belgium, in 1979. It was this presentation—and Instead, I was eager to demonstrate to Dijkstra what he called a “silly game” played by one person 11 Condu¡t Fall | Winter 2008 Research balls and black balls as he needs. To begin with, an arbitrary positive number of balls is put into the urn and as long as the urn contains two or more balls, the player repeats the following moves: he shakes the urn and, without looking, he takes two balls from the urn; if those two balls have the same color he throws one black ball into the urn, otherwise he returns one white ball into the urn.
Recommended publications
  • Software Development Career Pathway
    Career Exploration Guide Software Development Career Pathway Information Technology Career Cluster For more information about NYC Career and Technical Education, visit: www.cte.nyc Summer 2018 Getting Started What is software? What Types of Software Can You Develop? Computers and other smart devices are made up of Software includes operating systems—like Windows, Web applications are websites that allow users to contact management system, and PeopleSoft, a hardware and software. Hardware includes all of the Apple, and Google Android—and the applications check email, share documents, and shop online, human resources information system. physical parts of a device, like the power supply, that run on them— like word processors and games. among other things. Users access them with a Mobile applications are programs that can be data storage, and microprocessors. Software contains Software applications can be run directly from a connection to the Internet through a web browser accessed directly through mobile devices like smart instructions that are stored and run by the hardware. device or through a connection to the Internet. like Firefox, Chrome, or Safari. Web browsers are phones and tablets. Many mobile applications have Other names for software are programs or applications. the platforms people use to find, retrieve, and web-based counterparts. display information online. Web browsers are applications too. Desktop applications are programs that are stored on and accessed from a computer or laptop, like Enterprise software are off-the-shelf applications What is Software Development? word processors and spreadsheets. that are customized to the needs of businesses. Popular examples include Salesforce, a customer Software development is the design and creation of Quality Testers test the application to make sure software and is usually done by a team of people.
    [Show full text]
  • ACM SIGACT News Distributed Computing Column 28
    ACM SIGACT News Distributed Computing Column 28 Idit Keidar Dept. of Electrical Engineering, Technion Haifa, 32000, Israel [email protected] Sergio Rajsbaum, who edited this column for seven years and established it as a relevant and popular venue, is stepping down. This issue is my first step in the big shoes he vacated. I would like to take this opportunity to thank Sergio for providing us with seven years’ worth of interesting columns. In producing these columns, Sergio has enjoyed the support of the community at-large and obtained material from many authors, who greatly contributed to the column’s success. I hope to enjoy a similar level of support; I warmly welcome your feedback and suggestions for material to include in this column! The main two conferences in the area of principles of distributed computing, PODC and DISC, took place this summer. This issue is centered around these conferences, and more broadly, distributed computing research as reflected therein, ranging from reviews of this year’s instantiations, through influential papers in past instantiations, to examining PODC’s place within the realm of computer science. I begin with a short review of PODC’07, and highlight some “hot” trends that have taken root in PODC, as reflected in this year’s program. Some of the forthcoming columns will be dedicated to these up-and- coming research topics. This is followed by a review of this year’s DISC, by Edward (Eddie) Bortnikov. For some perspective on long-running trends in the field, I next include the announcement of this year’s Edsger W.
    [Show full text]
  • Edsger Dijkstra: the Man Who Carried Computer Science on His Shoulders
    INFERENCE / Vol. 5, No. 3 Edsger Dijkstra The Man Who Carried Computer Science on His Shoulders Krzysztof Apt s it turned out, the train I had taken from dsger dijkstra was born in Rotterdam in 1930. Nijmegen to Eindhoven arrived late. To make He described his father, at one time the president matters worse, I was then unable to find the right of the Dutch Chemical Society, as “an excellent Aoffice in the university building. When I eventually arrived Echemist,” and his mother as “a brilliant mathematician for my appointment, I was more than half an hour behind who had no job.”1 In 1948, Dijkstra achieved remarkable schedule. The professor completely ignored my profuse results when he completed secondary school at the famous apologies and proceeded to take a full hour for the meet- Erasmiaans Gymnasium in Rotterdam. His school diploma ing. It was the first time I met Edsger Wybe Dijkstra. shows that he earned the highest possible grade in no less At the time of our meeting in 1975, Dijkstra was 45 than six out of thirteen subjects. He then enrolled at the years old. The most prestigious award in computer sci- University of Leiden to study physics. ence, the ACM Turing Award, had been conferred on In September 1951, Dijkstra’s father suggested he attend him three years earlier. Almost twenty years his junior, I a three-week course on programming in Cambridge. It knew very little about the field—I had only learned what turned out to be an idea with far-reaching consequences. a flowchart was a couple of weeks earlier.
    [Show full text]
  • A Politico-Social History of Algolt (With a Chronology in the Form of a Log Book)
    A Politico-Social History of Algolt (With a Chronology in the Form of a Log Book) R. w. BEMER Introduction This is an admittedly fragmentary chronicle of events in the develop­ ment of the algorithmic language ALGOL. Nevertheless, it seems perti­ nent, while we await the advent of a technical and conceptual history, to outline the matrix of forces which shaped that history in a political and social sense. Perhaps the author's role is only that of recorder of visible events, rather than the complex interplay of ideas which have made ALGOL the force it is in the computational world. It is true, as Professor Ershov stated in his review of a draft of the present work, that "the reading of this history, rich in curious details, nevertheless does not enable the beginner to understand why ALGOL, with a history that would seem more disappointing than triumphant, changed the face of current programming". I can only state that the time scale and my own lesser competence do not allow the tracing of conceptual development in requisite detail. Books are sure to follow in this area, particularly one by Knuth. A further defect in the present work is the relatively lesser availability of European input to the log, although I could claim better access than many in the U.S.A. This is regrettable in view of the relatively stronger support given to ALGOL in Europe. Perhaps this calmer acceptance had the effect of reducing the number of significant entries for a log such as this. Following a brief view of the pattern of events come the entries of the chronology, or log, numbered for reference in the text.
    [Show full text]
  • Chapter 1 Introduction to Computers, Programs, and Java
    Chapter 1 Introduction to Computers, Programs, and Java 1.1 Introduction • The central theme of this book is to learn how to solve problems by writing a program . • This book teaches you how to create programs by using the Java programming languages . • Java is the Internet program language • Why Java? The answer is that Java enables user to deploy applications on the Internet for servers , desktop computers , and small hand-held devices . 1.2 What is a Computer? • A computer is an electronic device that stores and processes data. • A computer includes both hardware and software. o Hardware is the physical aspect of the computer that can be seen. o Software is the invisible instructions that control the hardware and make it work. • Computer programming consists of writing instructions for computers to perform. • A computer consists of the following hardware components o CPU (Central Processing Unit) o Memory (Main memory) o Storage Devices (hard disk, floppy disk, CDs) o Input/Output devices (monitor, printer, keyboard, mouse) o Communication devices (Modem, NIC (Network Interface Card)). Bus Storage Communication Input Output Memory CPU Devices Devices Devices Devices e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor, and Tape and NIC Mouse Printer FIGURE 1.1 A computer consists of a CPU, memory, Hard disk, floppy disk, monitor, printer, and communication devices. CMPS161 Class Notes (Chap 01) Page 1 / 15 Kuo-pao Yang 1.2.1 Central Processing Unit (CPU) • The central processing unit (CPU) is the brain of a computer. • It retrieves instructions from memory and executes them.
    [Show full text]
  • Rivest, Shamir, and Adleman Receive 2002 Turing Award, Volume 50
    Rivest, Shamir, and Adleman Receive 2002 Turing Award Cryptography and Information Se- curity Group. He received a B.A. in mathematics from Yale University and a Ph.D. in computer science from Stanford University. Shamir is the Borman Profes- sor in the Applied Mathematics Department of the Weizmann In- stitute of Science in Israel. He re- Ronald L. Rivest Adi Shamir Leonard M. Adleman ceived a B.S. in mathematics from Tel Aviv University and a Ph.D. in The Association for Computing Machinery (ACM) has computer science from the Weizmann Institute. named RONALD L. RIVEST, ADI SHAMIR, and LEONARD M. Adleman is the Distinguished Henry Salvatori ADLEMAN as winners of the 2002 A. M. Turing Award, Professor of Computer Science and Professor of considered the “Nobel Prize of Computing”, for Molecular Biology at the University of Southern their contributions to public key cryptography. California. He earned a B.S. in mathematics at the The Turing Award carries a $100,000 prize, with University of California, Berkeley, and a Ph.D. in funding provided by Intel Corporation. computer science, also at Berkeley. As researchers at the Massachusetts Institute of The ACM presented the Turing Award on June 7, Technology in 1977, the team developed the RSA 2003, in conjunction with the Federated Computing code, which has become the foundation for an en- Research Conference in San Diego, California. The tire generation of technology security products. It award was named for Alan M. Turing, the British mathematician who articulated the mathematical has also inspired important work in both theoret- foundation and limits of computing and who was a ical computer science and mathematics.
    [Show full text]
  • FUNDAMENTALS of COMPUTING (2019-20) COURSE CODE: 5023 502800CH (Grade 7 for ½ High School Credit) 502900CH (Grade 8 for ½ High School Credit)
    EXPLORING COMPUTER SCIENCE NEW NAME: FUNDAMENTALS OF COMPUTING (2019-20) COURSE CODE: 5023 502800CH (grade 7 for ½ high school credit) 502900CH (grade 8 for ½ high school credit) COURSE DESCRIPTION: Fundamentals of Computing is designed to introduce students to the field of computer science through an exploration of engaging and accessible topics. Through creativity and innovation, students will use critical thinking and problem solving skills to implement projects that are relevant to students’ lives. They will create a variety of computing artifacts while collaborating in teams. Students will gain a fundamental understanding of the history and operation of computers, programming, and web design. Students will also be introduced to computing careers and will examine societal and ethical issues of computing. OBJECTIVE: Given the necessary equipment, software, supplies, and facilities, the student will be able to successfully complete the following core standards for courses that grant one unit of credit. RECOMMENDED GRADE LEVELS: 9-12 (Preference 9-10) COURSE CREDIT: 1 unit (120 hours) COMPUTER REQUIREMENTS: One computer per student with Internet access RESOURCES: See attached Resource List A. SAFETY Effective professionals know the academic subject matter, including safety as required for proficiency within their area. They will use this knowledge as needed in their role. The following accountability criteria are considered essential for students in any program of study. 1. Review school safety policies and procedures. 2. Review classroom safety rules and procedures. 3. Review safety procedures for using equipment in the classroom. 4. Identify major causes of work-related accidents in office environments. 5. Demonstrate safety skills in an office/work environment.
    [Show full text]
  • Welcome to AI Matters 5(1)
    AI MATTERS, VOLUME 5, ISSUE 1 5(1) 2019 Welcome to AI Matters 5(1) Amy McGovern, co-editor (University of Oklahoma; [email protected]) Iolanda Leite, co-editor (Royal Institute of Technology (KTH); [email protected]) DOI: 10.1145/3320254.3320255 Issue overview receiving the 2018 ACM A.M. Turing Award! Welcome to the first issue of the fifth vol- ume of the AI Matters Newsletter! This issue opens with some news on a new SIGAI Stu- Submit to AI Matters! dent Travel Scholarship where we aim to en- Thanks for reading! Don’t forget to send courage students from traditionally underrep- your ideas and future submissions to AI resented geographic locations to apply and at- Matters! We’re accepting articles and an- tend SIGAI supported events. We also sum- nouncements now for the next issue. De- marize the fourth AAAI/ACM SIGAI Job Fair, tails on the submission process are avail- which continues to grow with the increasing able at http://sigai.acm.org/aimatters. popularity of AI. In our interview series, Marion Neumann interviews Tom Dietterich, an Emer- itus Professor at Oregon State University and one of the pioneers in Machine Learning. Amy McGovern is co- In our regular columns, we have a summary editor of AI Matters. She of recent and upcoming AI conferences and is a Professor of com- events from Michael Rovatsos. Our educa- puter science at the Uni- tional column this issue is dedicated to “biduc- versity of Oklahoma and tive computing”, one of Prolog’s most distinc- an adjunct Professor of tive features.
    [Show full text]
  • Software Tools: a Building Block Approach
    SOFTWARE TOOLS: A BUILDING BLOCK APPROACH NBS Special Publication 500-14 U.S. DEPARTMENT OF COMMERCE National Bureau of Standards ] NATIONAL BUREAU OF STANDARDS The National Bureau of Standards^ was established by an act of Congress March 3, 1901. The Bureau's overall goal is to strengthen and advance the Nation's science and technology and facilitate their effective application for public benefit. To this end, the Bureau conducts research and provides: (1) a basis for the Nation's physical measurement system, (2) scientific and technological services for industry and government, (3) a technical basis for equity in trade, and (4) technical services to pro- mote public safety. The Bureau consists of the Institute for Basic Standards, the Institute for Materials Research, the Institute for Applied Technology, the Institute for Computer Sciences and Technology, the Office for Information Programs, and the ! Office of Experimental Technology Incentives Program. THE INSTITUTE FOR BASIC STANDARDS provides the central basis within the United States of a complete and consist- ent system of physical measurement; coordinates that system with measurement systems of other nations; and furnishes essen- tial services leading to accurate and uniform physical measurements throughout the Nation's scientific community, industry, and commerce. The Institute consists of the Office of Measurement Services, and the following center and divisions: Applied Mathematics — Electricity — Mechanics — Heat — Optical Physics — Center for Radiation Research — Lab- oratory Astrophysics^ — Cryogenics^ — Electromagnetics^ — Time and Frequency*. THE INSTITUTE FOR MATERIALS RESEARCH conducts materials research leading to improved methods of measure- ment, standards, and data on the properties of well-characterized materials needed by industry, commerce, educational insti- tutions, and Government; provides advisory and research services to other Government agencies; and develops, produces, and distributes standard reference materials.
    [Show full text]
  • Florida Course Code Directory Computer Science Course Information 2019-2020
    FLORIDA COURSE CODE DIRECTORY COMPUTER SCIENCE COURSE INFORMATION 2019-2020 Section 1007.2616, Florida Statutes, was amended by the Florida Legislature to include the definition of computer science and a requirement that computer science courses be identified in the Course Code Directory published on the Department of Education’s website. DEFINITION: The study of computers and algorithmic processes, including their principles, hardware and software designs, applications, and their impact on society, and includes computer coding and computer programming. SECONDARY COMPUTER SCIENCE COURSES Middle and high schools in each district, including combination schools in which any of grades 6-12 are taught, must provide an opportunity for students to enroll in a computer science course. If a school district does not offer an identified computer science course the district must provide students access to the course through the Florida Virtual School (FLVS) or through other means. COURSE NUMBER COURSE TITLE 0200000 M/J Computer Science Discoveries 0200010 M/J Computer Science Discoveries 1 0200020 M/J Computer Science Discoveries 2 0200305 Computer Science Discoveries 0200315 Computer Science Principles 0200320 AP Computer Science A 0200325 AP Computer Science A Innovation 0200335 AP Computer Science Principles 0200435 PRE-AICE Computer Studies IGCSE Level 0200480 AICE Computer Science 1 AS Level 0200485 AICE Computer Science 2 A Level 0200490 AICE Information Technology 1 AS Level 0200495 AICE Information Technology 2 A Level 0200800 IB Computer
    [Show full text]
  • Introduction to High Performance Computing
    Introduction to High Performance Computing Shaohao Chen Research Computing Services (RCS) Boston University Outline • What is HPC? Why computer cluster? • Basic structure of a computer cluster • Computer performance and the top 500 list • HPC for scientific research and parallel computing • National-wide HPC resources: XSEDE • BU SCC and RCS tutorials What is HPC? • High Performance Computing (HPC) refers to the practice of aggregating computing power in order to solve large problems in science, engineering, or business. • Purpose of HPC: accelerates computer programs, and thus accelerates work process. • Computer cluster: A set of connected computers that work together. They can be viewed as a single system. • Similar terminologies: supercomputing, parallel computing. • Parallel computing: many computations are carried out simultaneously, typically computed on a computer cluster. • Related terminologies: grid computing, cloud computing. Computing power of a single CPU chip • Moore‘s law is the observation that the computing power of CPU doubles approximately every two years. • Nowadays the multi-core technique is the key to keep up with Moore's law. Why computer cluster? • Drawbacks of increasing CPU clock frequency: --- Electric power consumption is proportional to the cubic of CPU clock frequency (ν3). --- Generates more heat. • A drawback of increasing the number of cores within one CPU chip: --- Difficult for heat dissipation. • Computer cluster: connect many computers with high- speed networks. • Currently computer cluster is the best solution to scale up computer power. • Consequently software/programs need to be designed in the manner of parallel computing. Basic structure of a computer cluster • Cluster – a collection of many computers/nodes. • Rack – a closet to hold a bunch of nodes.
    [Show full text]
  • Arxiv:1901.04709V1 [Cs.GT]
    Self-Stabilization Through the Lens of Game Theory Krzysztof R. Apt1,2 and Ehsan Shoja3 1 CWI, Amsterdam, The Netherlands 2 MIMUW, University of Warsaw, Warsaw, Poland 3 Sharif University of Technology, Tehran, Iran Abstract. In 1974 E.W. Dijkstra introduced the seminal concept of self- stabilization that turned out to be one of the main approaches to fault- tolerant computing. We show here how his three solutions can be for- malized and reasoned about using the concepts of game theory. We also determine the precise number of steps needed to reach self-stabilization in his first solution. 1 Introduction In 1974 Edsger W. Dijkstra introduced in a two-page article [10] the notion of self-stabilization. The paper was completely ignored until 1983, when Leslie Lamport stressed its importance in his invited talk at the ACM Symposium on Principles of Distributed Computing (PODC), published a year later as [21]. Things have changed since then. According to Google Scholar Dijkstra’s paper has been by now cited more than 2300 times. It became one of the main ap- proaches to fault tolerant computing. An early survey was published in 1993 as [26], while the research on the subject until 2000 was summarized in the book [13]. In 2002 Dijkstra’s paper won the PODC influential paper award (renamed in 2003 to Dijkstra Prize). The literature on the subject initiated by it continues to grow. There are annual Self-Stabilizing Systems Workshops, the 18th edition of which took part in 2016. The idea proposed by Dijkstra is very simple. Consider a distributed system arXiv:1901.04709v1 [cs.GT] 15 Jan 2019 viewed as a network of machines.
    [Show full text]