Sunday, July 03, 2005

Chương trình xấu, đẹp, ướt át, khô khan, tồi, tốt

Copy from : Pro Ngo Hung CSE of Buffalo  
Khi dạy lớp mạng máy tính, tôi cho sinh viên viết chương trình trên mạng. Dù nội dung chính của lớp là mạng máy tính, tôi vẫn đặt tiêu chuẩn cao trong kỹ năng lập trình và cách trình bày chương trình. Tôi rất thích một đoạn trong quyển sách " cấu trúc và biên dịch các chương trình máy tính" của các giáo sư Harold Belson và Gerald Jay Sussman:
  • Ngôn ngữ máy tính không chỉ dùng để bảo máy tính làm các tác vụ này khác. Ngôn ngữ máy tính còn là phương tiện truyền tải các ý tưởng về mặt phương pháp. Vì thế, các chương trình máy tính phải được viết để cho người đọc; việc máy tính hiểu và chạy một chương trình chỉ là mục tiêu phụ.
Đây là một trong những quyển sách về máy tính hay nhất mà tôi biết (dù là nó được viết trong ngữ cảnh của ngôn ngữ Scheme). Cá nhân tôi rất ghét các chương trình viết cẩu thả. Vì thế, tôi thường cho sinh viên các ví dụ về các chương trình loại này. Sau đây là ví dụ của một chương trình tồi và chương trình tốt.

Để cho lớp học thêm sinh động, tôi cho cả các ví dụ các chương trình ướt át, khô khan, đẹp, và xấu. Đoạn chương trình xấu là đoạn đáng chú ý. Nó là một ví dụ của một chương trình C được cố ý làm cho rối rắm lên ( obfuscated C code). Có cả một cuộc thi quốc tế hàng năm cho các chương trình loại này. Lần tới ta sẽ bàn thêm về chúng.