Kho lưu trữ bản thảo của Edsger W. Dijkstra
(cs.utexas.edu)- Kho lưu trữ trực tuyến bảo tồn các nghiên cứu và trước tác của Edsger W. Dijkstra, một trong những người thuộc thế hệ khai sáng của khoa học máy tính
- Bao gồm các đóng góp ở những lĩnh vực cốt lõi như thiết kế thuật toán, ngôn ngữ lập trình, hệ điều hành, xử lý phân tán, kiểm chứng hình thức
- Công bố hơn 1.000 bản thảo được đánh số EWD được viết trong hơn 40 năm dưới dạng PDF, đồng thời cung cấp bản chép lại và bản dịch có thể tìm kiếm
- Sắp xếp có hệ thống các tài liệu bổ sung như tham chiếu chéo giữa các bản thảo, bản tóm tắt, thông tin bản quyền, video bài giảng và phỏng vấn
- Là nền tảng tri thức dẫn tới chuỗi bài giảng tưởng niệm và cộng đồng nghiên cứu liên quan, tiếp nối tư tưởng và triết lý giáo dục của Dijkstra
Cuộc đời và thành tựu của Dijkstra
- Edsger Wybe Dijkstra là một trong những nhân vật đặt nền móng cho khoa học máy tính, để lại những đóng góp nền tảng trong nhiều lĩnh vực như thiết kế thuật toán, ngôn ngữ lập trình, hệ điều hành, xử lý phân tán, đặc tả hình thức và thiết kế lập luận toán học
- Trong hơn 40 năm sự nghiệp trải rộng giữa học thuật và công nghiệp, ông đã nhận được nhiều giải thưởng, bao gồm ACM Turing Award
- Ông cũng quan tâm sâu sắc đến mối quan hệ giữa giáo dục, khoa học máy tính hàn lâm và ngành công nghiệp phần mềm
Bộ sưu tập bản thảo EWD
- Trong hơn 40 năm, Dijkstra tích cực trao đổi thư từ với các đồng nghiệp khoa học và phát hành các ghi chú kỹ thuật, báo cáo chuyến đi, bình luận được đánh số liên tiếp dưới tên gọi “EWDs”
- Nhờ máy photocopy phổ biến và mức độ quan tâm cao, số bản lưu hành không chính thức đã lên tới hàng nghìn bản
- Phần lớn các bản thảo chưa từng được xuất bản, nhưng Khoa Khoa học Máy tính của Đại học Texas đã lưu trữ vĩnh viễn hơn 1.000 tài liệu PDF dạng bitmap
- Các bản thảo gốc, nhật ký, thư từ, ảnh và tư liệu khác được lưu giữ tại Briscoe Center for American History của Đại học Texas
Chỉ mục và cách truy cập
- Có hai loại chỉ mục
- Chỉ mục BibTeX: bao gồm thông tin thư mục
- Chỉ mục ad-hoc: chỉ hiển thị tiêu đề để tìm kiếm nhanh
- Cung cấp bảng đối chiếu giữa số EWD và năm phát hành, các liên kết tới báo cáo kỹ thuật của Trung tâm Toán học (CWI), luận án tiến sĩ và các tài liệu khác
- Một số bản thảo đã được xuất bản, và bản quyền của các tài liệu đó thuộc về nhà xuất bản
Chép lại và dịch thuật
- Bản chép lại có thể tìm kiếm dành cho người khiếm thị đang dần được bổ sung
- Một số bản thảo tiếng Hà Lan đã được dịch sang tiếng Anh, EWD1036 sang tiếng Tây Ban Nha, và EWD28 sang tiếng Nga
- Hơn 60 tình nguyện viên đã tham gia công việc chép lại, và nếu phát hiện lỗi đánh máy thì có thể đề xuất chỉnh sửa qua email
- Do vấn đề về độ chính xác của bản dịch, hiện tại việc tuyển thêm nguồn lực dịch mới đã tạm dừng
Liên kết giữa các bản thảo và bản tóm tắt
- Có cung cấp danh sách tham chiếu chéo giữa các EWD do Diethard Michaelis biên soạn, và có thể được bổ sung với sự tham gia của độc giả
- Dijkstra thường lặp lại cùng một chủ đề nhưng đưa ra góc nhìn mới, và các tài liệu liên quan được nối với nhau bằng liên kết “see also”
- Theo đề xuất của Günter Rote, việc bổ sung phần tóm tắt EWD đã được bắt đầu, đặc biệt hoan nghênh các bản tóm tắt tiếng Anh cho những bản thảo tiếng Hà Lan
Bản quyền
- Bản quyền của phần lớn các EWD thuộc về các con của Dijkstra, và Rutger M. Dijkstra phụ trách các yêu cầu xin phép tái bản
- Các tài liệu đã xuất bản do nhà xuất bản tương ứng nắm giữ bản quyền, kèm danh sách và thông tin trang bìa
- Bản gốc thuộc sở hữu của Briscoe Center for American History, và áp dụng chính sách cấp phép xuất bản của trung tâm
Tư liệu video và âm thanh
- Các bản ghi bài giảng và phỏng vấn của Dijkstra được cung cấp trên một trang riêng
Tài liệu liên quan đến Dijkstra và công trình của ông
- Cung cấp bản phỏng vấn năm 1985 với Rogier F. van Vlissingen cùng hồi ức cá nhân, và biên bản phỏng vấn năm 2001 của Philip L. Frana
- Công bố chương trình và video của hội thảo chuyên đề “In Pursuit of Simplicity” được tổ chức vào sinh nhật năm 2000 để kỷ niệm việc nghỉ hưu năm 1999 của ông
- Sau khi ông qua đời năm 2002, đã có nhiều bài viết tưởng niệm và sự kiện kỷ niệm được tổ chức
- Có bài hồi tưởng năm 2008 của Maarten van Emden, cùng tuyển tập tưởng niệm xuất bản năm 2021 do Krzysztof R. Apt và Tony Hoare biên tập
- Blog Dijkstra’s Cry do Edgar G. Daylight vận hành tiếp tục bàn về tư tưởng và nghiên cứu của Dijkstra
- Có nhắc tới ví dụ giải thích sự cân bằng giữa hiệu quả và tiết kiệm bộ nhớ thông qua “nguyên lý dây chuyền lắp ráp” được nêu trong EWD249
- Edsger W. Dijkstra Prize in Distributed Computing tôn vinh những thành tựu nền tảng của ông như các nguyên lý đồng thời và nghiên cứu về tự ổn định
Chuỗi bài giảng tưởng niệm Dijkstra
- Từ tháng 10 năm 2010, Đại học Texas tổ chức thường niên Dijkstra Memorial Lectures
Thông tin về website
- Lịch sử thay đổi gần đây nhất được ghi là bản cập nhật ngày 30 tháng 3 năm 2021
- Có cung cấp danh sách những người đóng góp xây dựng website và địa chỉ email để gửi phản hồi
Các website liên quan
- Discipline in Thought: giới thiệu một website bàn về tư duy tính toán và phương pháp luận toán học, tiếp nối truyền thống của Dijkstra
Ngày chỉnh sửa bản gốc: 12 tháng 1 năm 2020
1 bình luận
Ý kiến trên Hacker News
Trong bối cảnh năm 2025, bài viết quan trọng nhất có lẽ là tiểu luận của Dijkstra về "sự ngu ngốc của natural language programming"
On the foolishness of "natural language programming"
Ví dụ,
anddễ đọc hơn&&, vàif A then Bdễ đọc hơnif (A) BToán học thiên về sự cô đọng, nhưng theo tôi lập trình có được thế cân bằng tốt hơn nhờ coi trọng tính dễ đọc
Nếu điều Dijkstra muốn nói là “chỉ theo đuổi tính dễ đọc là một cuộc đánh đổi tệ”, thì đó là một nhận định đúng
Và nó đúng một cách đáng kinh ngạc
Điều này đặc biệt đúng với những người thích dynamic typing
Thật đáng ngạc nhiên khi Dijkstra đã viết từ thập niên 1980 rằng “giáo dục đang rời xa việc rèn luyện trí tuệ, kéo theo năng lực sử dụng ngôn ngữ suy giảm”
Ở Hà Lan, người ta đánh giá chương trình học theo tỷ lệ học sinh vượt qua, nên nếu tỷ lệ đỗ thấp thì sẽ hạ độ khó xuống
Chuyện gì xảy ra nếu lặp lại điều này suốt hàng chục năm thì quá rõ ràng
Một trong những bài tôi thường chia sẻ là EWD831
Nó giải thích vì sao chỉ số mảng nên bắt đầu từ 0, và vì sao khoảng nên được định nghĩa theo kiểu bao gồm cận dưới, loại trừ cận trên
Thực ra cũng có những trường hợp 1-based tốt hơn. Ví dụ, trong lặp ngược, 1-based tự nhiên hơn
Cũng có thể lập luận rằng nên tách biệt offset là 0-based còn index là 1-based
Bài liên quan: Again on 0-based vs 1-based indexing
Đó là vì kiến trúc thanh ghi chỉ số kiểu trừ dần của IBM 704, và điều này giúp mảng column-major hoạt động hiệu quả
Cray, CUDA và các DB hướng cột hiện đại cũng dùng nguyên lý tương tự
Xét từ góc độ offset bộ nhớ, Fortran rốt cuộc vẫn đang tuân theo quy tắc của Dijkstra
Việc đánh số chương sách bắt đầu từ 0 đến giờ vẫn khiến tôi thấy khó hiểu
Địa chỉ bộ nhớ bắt đầu từ 0 là do tổ hợp điện áp, chứ không phải vì khái niệm thứ tự
Ngoài đời đâu có thứ như “thế kỷ thứ 0” hay “dặm thứ 0”, nên tôi nghĩ chương sách cũng vậy
Ví dụ, nếu chỉ đường mà nói “đi ba dãy nhà”, thì điểm xuất phát chính là dãy nhà thứ 0
base + 0, nên người ta bắt đầu từ 0 vì tính toán offsetVí dụ, Tensor Analysis on Manifolds năm 1968 có một chương 0 nói về lý thuyết tập hợp
Tương tự như “định luật thứ không (zeroth law of thermodynamics)”, nó cũng được dùng để biểu đạt một khái niệm có trước trật tự sẵn có
Suy cho cùng, việc cho rằng bắt đầu từ 0 là “không tự nhiên” chỉ là thiên kiến văn hóa
Tôi rất thích đọc bài Dijkstra hồi tưởng về thiết kế ngắt đầu tiên
EWD1303: The first interrupt
Nếu bạn quan tâm đến tư duy toán học, tôi khuyên đọc EWD717 và EWD765
Cả hai đều ghi lại những quá trình giải quyết vấn đề rất thú vị
Trong EWD498: How do we tell truths that might hurt?
câu “natural language programming chắc chắn sẽ thất bại” để lại ấn tượng mạnh
Một gợi ý khác là EWD1305,
một bài tập hợp các câu trả lời cho thắc mắc của sinh viên
Dijkstra chỉ trích việc sự phổ biến của Internet đã khiến những sinh viên ít thiên hướng khoa học đổ xô vào khoa học máy tính
Và ông chỉ ra thực tế rằng người ta gần như không dạy cách “lập trình cho tốt”
Một trong những bài tôi thích nhất là EWD898: Threats to computer science
Và phần mở đầu của EWD899, nơi ông chê bai gay gắt một bài báo AI, cũng rất ấn tượng
Câu “thật may vì tôi đã không tham dự hội nghị đó” đặc biệt mạnh
Trước đây tôi từng in một câu nói nổi tiếng của Dijkstra ở mặt sau danh thiếp
“Computer Science is no more about computers than astronomy is about telescopes”
Một ngày nào đó tôi muốn gom toàn bộ bài viết của ông vào máy đọc sách để vừa đi đường vừa đọc
Suy cho cùng, thứ chúng ta xử lý là code (chiếc kính viễn vọng), và chất lượng của nó quyết định thành quả của chúng ta
Tôi từng học một lớp ở UT, và Dijkstra bắt sinh viên làm bài thi bằng bút mực thay vì bút chì
Ông tin rằng khi không thể tẩy xóa, đó lại là cách rèn luyện để giảm bớt sai lầm