Edsger Dijkstra

**Edsger Wybe Dijkstra** (; 11 tháng 5 năm 1930 tại Rotterdam – 6 tháng 8 năm 2002 tại Nuenen), là nhà khoa học máy tính người Hà Lan. Ông được nhận giải thưởng Turing năm 1972 cho các đóng góp có tính chất nền tảng trong lĩnh vực ngôn ngữ lập trình. 
Không lâu trước khi chết, ông đã được nhận giải Bài báo ảnh hưởng lớn trong lĩnh vực tính toán phân tán của ACM dành cho bài báo đã khởi đầu cho ngành con Tự ổn định. Sau khi ông qua đời, giải thưởng thường niên này đã được đổi tên thành giải thưởng ACM Edsger W. Dijkstra.

## Tiểu sử
Dijkstra học vật lý lý thuyết tại Đại học Leiden, nhưng ông đã nhanh chóng nhận ra rằng ông quan tâm đến lập trình hơn.

Thời kỳ đầu, ông làm việc tại Trung tâm toán học, Viện nghiên cứu quốc gia về toán học và khoa học máy tính tại Amsterdam, ông còn giữ chức vị giáo sư tại Đại học Kỹ thuật Eindhoven, Hà Lan. Đầu thập kỷ 1970, ông làm cộng tác nghiên cứu tại Burroughs Corporation, sau đó giữ vị trí Schlumberger Centennial Chair ngành Khoa học máy tính tại Đại học Texas tại Austin, Mỹ. Ông nghỉ hưu năm 2000.

Trong các đóng góp của ông cho ngành khoa học máy tính có *[[thuật toán]] [[bài toán đường đi ngắn nhất|đường đi ngắn nhất]]*, còn được biết với tên *[[Thuật toán Dijkstra]]*, hệ điều hành THE và cấu trúc semaphore để phối hợp hoạt động của nhiều bộ vi xử lý và nhiều chương trình. Một khái niệm khác trong lĩnh vực tính toán phân tán đã được khởi đầu nhờ Dijkstra là self-stabilization - một cách khác để đảm bảo tính đáng tin cậy của hệ thống. Thuật toán Dijkstra được sử dụng trong SPF, Shortest Path First, dùng trong giao thức định tuyến OSPF, Open Shortest Path First.

Ông còn nổi tiếng với đánh giá thấp về lệnh GOTO trong lập trình máy tính. Bài báo năm 1968 "A Case against the GO TO Statement " (EWD215) được xem là một bước quan trọng tiến tới việc lệnh GOTO bị thay thế dần trên quy mô lớn bởi các cấu trúc lập trình chẳng hạn như vòng lặp while. Phương pháp này còn được gọi là Lập trình có cấu trúc. Dijkstra đã rất hâm mộ ngôn ngữ lập trình ALGOL 60, và đã làm việc trong nhóm cài đặt trình biên dịch đầu tiên cho ngôn ngữ này.

Từ những năm 1970, mối quan tâm chính của Dijkstra là kiểm định hình thức (*formal verification*). Quan niệm phổ biến thời đó là người ta nên đưa ra một chứng minh toán học về tính đúng đắn của chương trình sau khi đã viết chương trình đó. Dijkstra đã phản đối rằng các chứng minh thu được rất dài và nặng nề, và rằng chứng minh đó không đem lại hiểu biết về việc chương trình đã được phát triển như thế nào. Một phương pháp khác là *[[dẫn xuất chương trình]]* (*program derivation*), để "phát triển chứng minh và chương trình một cách đồng thời". Người ta bắt đầu bằng một *đặc tả* toán học về những gì mà một chương trình cần phải thực hiện, sau đó áp dụng các biến đổi toán học đối với đặc tả đó cho đến khi nó được chuyển thành một chương trình chạy được. Chương trình thu được khi đó được gọi là "đúng đắn theo cách xây dựng" (*correct by construction*).

Dijkstra còn nổi tiếng với các bài luận của ông về lập trình; ông là người đầu tiên tuyên bố rằng việc lập trình có đặc điểm cố hữu là khó khăn và phức tạp đến mức các lập trình viên cần phải khai thác mọi kỹ thuật và các phương pháp trừu tượng hóa có thể để hy vọng có thể quản lý được độ phức tạp của nó một cách thành công. Ông còn nổi tiếng với thói quen viết tay cẩn thận các bản thảo bằng bút máy. Các bản thảo này được gọi là EWD, do Dijkstra đánh số chúng bằng tiết đầu tố *EWD*. Ông thường phân phát các bản phô-tô của bản EWD mới cho các đồng nghiệp của mình; những người nhận được lại phô-tô và tiếp tục phân phát các bản sao, bằng cách đó các bản EWD được phát tán khắp cộng đồng khoa học máy tính quốc tế. Các chủ đề chính là về khoa học máy tính và toán học, ngoài ra còn có các báo cáo công tác, thư và các bài phát biểu. Hơn 1300 bài EWD đã được quét thành ảnh, số lượng được chuyển thành dạng điện tử để phục vụ nghiên cứu ngày càng tăng, chúng được lưu trữ và cung cấp trực tuyến tại Đại học Texas.

Dijkstra đã là một trong những người tiên phong trong nghiên cứu về tính toán phân tán. Có người còn cho là một số bài báo của ông đã thiết lập ngành nghiên cứu này. Cụ thể, bài báo "Self-stabilizing Systems in Spite of Distributed Control" của ông đã khởi đầu ngành con Self-stabilization.

Dijkstra còn được ghi nhận là cả đời chỉ sở hữu duy nhất một chiếc máy tính (vào cuối đời) và họa hoằn mới thực sự sử dụng nó, để đi đôi với quan niệm của ông rằng khoa học máy tính trừu tượng hơn chứ không chỉ là lập trình, quan niệm này được thể hiện trong nhiều câu nói nổi tiếng chẳng hạn như "Khoa học máy tính đối với máy tính cũng như thiên văn học đối với kính thiên văn" (*Computer Science is no more about computers than astronomy is about telescopes.*)

Ông qua đời tại Nuenen, Hà Lan vào ngày 6 tháng 8, năm 2002 sau một thời gian dài bị ung thư. Năm sau, giải thưởng PODC Influential Paper Award in distributed computing (*bài báo ảnh hưởng trong lĩnh vực tính toán phân tán) của tổ chức ACM ([[Association for Computing Machinery]]) đã được đổi tên thành [[Giải thưởng Dijkstra]] để vinh danh ông.

==Xem thêm==
* [[Thuật toán Dijkstra]]
* [[Bài toán triết gia ăn tối]] (*Dining philosophers problem*)
* "[[The Cruelty of Really Teaching Computer Science]]"
* [[THE multiprogramming system]]
* [[Shunting yard algorithm]]

==Chú thích==


==Tham khảo==
===Viết bởi E.W. Dijkstra===
* *Go To Statement Considered Harmful*, *Communications of the ACM*, Vol. 11 (1968) 147 &ndash; 148; [http://www.acm.org/classics/oct95/ online edition]  (EWD215)
* [http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html *How do we tell truths that might hurt?* (EWD498)]

* [http://www.cs.utexas.edu/users/EWD/transcriptions/EWD11xx/EWD1166.html *From My Life* (EWD166)]
* *A Discipline of Programming*, Prentice-Hall Series in Automatic Computation, 1976, ISBN 0-13-215871-X
* *Selected Writings on Computing: A Personal Perspective*, Texts and Monographs in Computer Science, Springer-Verlag, 1982, ISBN 0-387-90652-5
* *A Method of Programming*, E.W. Dijkstra, W.H.J. Feijen, J. Sterringa, Addison Wesley 1988, ISBN 0-201-17536-3

===Viết về Dijkstra===
* [http://www.digidome.nl/edsger_wybe_dijkstra.htm Biography] Digidome
* [http://homepages.cwi.nl/~apt/ps/dijkstra.pdf *Edsger Wybe Dijkstra (1930 &ndash; 2002): A Portrait of a Genius*] ([[PDF]]) Obituary in *Formal Aspects of Computing* with a short biography
* [http://www.cs.utexas.edu/users/EWD/memorial/gries.html *How can we explain Edsger W. Dijkstra to those who didn't know him?''] by David Gries
* Dijkstra Eulogy by J Strother Moore
* In Memoriam Edsger Wybe Dijkstra  by Mario Szegedy

## Liên kết ngoài

* Noorderlicht Interview Video, bandwidth options
* Luca Cardelli's Font of Dijkstra's Handwriting