Edsger Wybe Dijkstra (; Dutch: [ˈɛtsxər ˈʋibə ˈdɛikstra] (listen); 11 May 1930 – 6 August 2002) was a Dutch systems scientist, programmer, software engineer, science essayist, and pioneer in computing science. A theoretical physicist by training, he worked as a programmer at the Mathematisch Centrum (Amsterdam) from 1952 to 1962. A university professor for much of his life, Dijkstra held the Schlumberger Centennial Chair in Computer Sciences at the University of Texas at Austin from 1984 until his retirement in 1999. He was a professor of mathematics at the Eindhoven University of Technology (1962–1984) and a research fellow at the Burroughs Corporation (1973–1984).
One of the most influential figures of computing science’s founding generation, Dijkstra helped shape the new discipline from both an engineering and a theoretical perspective. His fundamental contributions cover diverse areas of computing science, including compiler construction, operating systems, distributed systems, sequential and concurrent programming, programming paradigm and methodology, programming language research, program design, program development, program verification, software engineering principles, graph algorithms, and philosophical foundations of computer programming and computer science. Many of his papers are the source of new research areas. Several concepts and problems that are now standard in computer science were first identified by Dijkstra or bear names coined by him. As a foremost opponent of the mechanizing view of computing science, he refuted the use of the concepts of ‘computer science’ and ‘software engineering’ as umbrella terms for academic disciplines.
Until the mid-1960s computer programming was considered more an art (or a craft) than a scientific discipline. In Harlan Mills’s words (1986), “programming [before the 1970s] was regarded as a private, puzzle-solving activity of writing computer instructions to work as a program”. In the late 1960s, computer programming was in a state of crisis. Dijkstra was one of a small group of academics and industrial programmers who advocated a new programming style to improve the quality of programs. Dijkstra, who had a background in mathematics and physics, was one of the driving forces behind the acceptance of computer programming as a scientific discipline. He coined the phrase “structured programming” and during the 1970s this became the new programming orthodoxy. His ideas about structured programming helped lay the foundations for the birth and development of the professional discipline of software engineering, enabling programmers to organize and manage increasingly complex software projects. As Bertrand Meyer (2009) noted, “The revolution in views of programming started by Dijkstra’s iconoclasm led to a movement known as structured programming, which advocated a systematic, rational approach to program construction. Structured programming is the basis for all that has been done since in programming methodology, including object-oriented programming.”The academic study of concurrent computing started in the 1960s, with Dijkstra (1965) credited with being the first paper in this field, identifying and solving the mutual exclusion problem. He was also one of the early pioneers of the research on principles of distributed computing. His foundational work on concurrency, semaphores, mutual exclusion, deadlock (deadly embrace), finding shortest paths in graphs, fault-tolerance, self-stabilization, among many other contributions comprises many of the pillars upon which the field of distributed computing is built. Shortly before his death in 2002, he received the ACM PODC Influential-Paper Award in distributed computing for his work on self-stabilization of program computation. This annual award was renamed the Dijkstra Prize (Edsger W. Dijkstra Prize in Distributed Computing) the following year, in his honor. As the prize, sponsored jointly by the ACM Symposium on Principles of Distributed Computing (PODC) and the EATCS International Symposium on Distributed Computing (DISC), recognizes that “No other individual has had a larger influence on research in principles of distributed computing”.