Xem thêm

Ngôn ngữ lập trình C

Huy Erick
Chương trình "Hello, World!" của Brian Kernighan (1978) Ngôn ngữ lập trình C, còn được gọi là "K&R" theo chữ viết tắt của tác giả, là một cuốn sách lập trình máy tính được viết...

The C Programming Language Chương trình "Hello, World!" của Brian Kernighan (1978)

ngôn ngữ lập trình c , còn được gọi là "K&R" theo chữ viết tắt của tác giả, là một cuốn sách lập trình máy tính được viết bởi Brian Kernighan và Dennis Ritchie. Dennis Ritchie đã thiết kế và triển khai ngôn ngữ lập trình C, cũng như đồng thiết kế hệ điều hành Unix mà ngôn ngữ này phát triển sâu sắc. Cuốn sách đã đóng vai trò quan trọng trong sự phát triển và phổ biến của ngôn ngữ C, và cho đến ngày nay vẫn được đọc và sử dụng rộng rãi. Vì cuốn sách được cộng tác bởi nhà thiết kế ngôn ngữ ban đầu và vì phiên bản đầu tiên của cuốn sách đã phục vụ nhiều năm như một tài liệu chuẩn cho ngôn ngữ này, nên cuốn sách đã được coi là tài liệu tham khảo uy tín về ngôn ngữ C.

Lịch sử

Ngôn ngữ C được Dennis Ritchie tạo ra tại Bell Labs vào đầu những năm 1970 như một phiên bản mở rộng của ngôn ngữ B của Ken Thompson. Brian Kernighan, nhân viên khác tại Bell Labs, đã viết bài hướng dẫn C đầu tiên và ông đã thuyết phục Ritchie cộng tác viết một cuốn sách về ngôn ngữ này. Kernighan đã viết phần lớn nội dung giảng dạy trong cuốn sách, và phần bổ trợ là bảng hướng dẫn của Ritchie.

Phiên bản đầu tiên của cuốn sách được xuất bản vào ngày 22 tháng 2 năm 1978, đây là cuốn sách dạy lập trình C đầu tiên được phổ biến rộng rãi. Phiên bản này của C thường được gọi là "C của K&R" (theo tác giả của cuốn sách), thường được phân biệt với phiên bản sau của C được tiêu chuẩn hóa dưới dạng "C ANSI".

Vào tháng 4 năm 1988, phiên bản thứ hai của cuốn sách được xuất bản, đã được cập nhật để bao gồm các thay đổi trong ngôn ngữ do tiêu chuẩn C ANSI mới nhất, đặc biệt là với việc bổ sung tài liệu tham khảo về thư viện chuẩn. Phiên bản thứ hai của cuốn sách (và cho đến năm 2023, phiên bản mới nhất) đã được dịch sang hơn 20 ngôn ngữ. Vào năm 2012, phiên bản eBook của cuốn sách thứ hai đã được xuất bản dưới định dạng ePub, Mobi và PDF.

Ngôn ngữ C ANSI, được tiêu chuẩn hóa lần đầu vào năm 1989, đã trải qua nhiều sửa đổi, biến thể mới nhất là ISO/IEC 9899:2018 (cũng được gọi là C17 hoặc C18), được ANSI chấp nhận làm tiêu chuẩn vào tháng 6 năm 2018. Tuy nhiên, không có phiên bản mới của cuốn sách "The C Programming Language" được xuất bản để bao gồm các tiêu chuẩn gần đây hơn.

Đón nhận

Tạp chí Byte đã nói vào tháng 8 năm 1983, "[The C Programming Language] là công trình quan trọng về ngôn ngữ C. Đừng đọc dù chỉ một đoạn nào nữa cho đến khi bạn có cuốn sách này!" Jerry Pournelle cũng viết trong tạp chí cùng năm đó rằng cuốn sách "vẫn là tiêu chuẩn... một chút ngắn gọn". Ông tiếp tục, "Bạn có thể học ngôn ngữ C mà không cần cuốn sách của Kernighan và Ritchie, nhưng đó là cách làm khó. Bạn cũng đang làm việc quá khắc nghiệt nếu cuốn sách đó là cuốn sách duy nhất về ngôn ngữ C mà bạn mua."

Ảnh hưởng

Cuốn sách "The C Programming Language" đã thường được ví như một mô hình về viết kỹ thuật, với những nhận xét cho biết rằng nó có cách trình bày rõ ràng và đơn giản. Các ví dụ thường bao gồm các chương trình đầy đủ mà người đọc có thể gặp hàng ngày khi sử dụng ngôn ngữ này, với sự tập trung vào lập trình hệ thống. Tác giả của cuốn sách nói:

"Chúng tôi đã cố gắng giữ nguyên sự ngắn gọn của phiên bản đầu tiên. C không phải là một ngôn ngữ lớn, và nó không phục vụ tốt bởi một cuốn sách lớn. Chúng tôi đã cải tiến cách trình bày về những tính năng quan trọng, như con trỏ, mà là trung tâm của lập trình C. Chúng tôi đã làm hoàn thiện các ví dụ ban đầu và đã thêm các ví dụ mới trong một số chương. Ví dụ, phần giảng dạy về các khai báo phức tạp được bổ sung bằng các chương trình chuyển đổi khai báo thành từ và ngược lại. Giống như trước đây, tất cả các ví dụ đã được thử nghiệm trực tiếp từ văn bản, có định dạng máy đọc."

Cuốn sách đã giới thiệu chương trình "Hello, World!" - một chương trình đơn giản chỉ in ra văn bản "hello, world" - như một ví dụ về một chương trình C hoạt động tối thiểu. Kể từ đó, nhiều sách khác cũng đã tuân thủ quy ước này để giới thiệu các ngôn ngữ lập trình.

Trước sự ra đời của C ANSI, phiên bản đầu tiên của cuốn sách đã phục vụ như tiêu chuẩn để viết trình biên dịch C. Với việc tiêu chuẩn hóa C ANSI, các tác giả đã viết cuốn sách thứ hai dành cho các lập trình viên thay vì các nhà phát triển trình biên dịch, nói:

"Phụ lục A, bảng hướng dẫn, không phải là chuẩn, nhưng là cách của chúng tôi để truyền đạt những điều cần thiết của chuẩn trong một không gian nhỏ hơn. Nó được dùng cho sự tiếp cận dễ hiểu của các lập trình viên, nhưng không phải là định nghĩa cho các nhà phát triển trình biên dịch - vai trò đó thuộc về chính chuẩn. Phụ lục B là một tóm tắt về các cơ sở dữ liệu của thư viện chuẩn. Nó cũng được dùng để tham khảo bởi các lập trình viên, không phải là các nhà phát triển triển khai. Phụ lục C là một tóm tắt ngắn gọn về những thay đổi từ phiên bản ban đầu."

Sự ảnh hưởng của cuốn sách "The C Programming Language" đối với các lập trình viên, thế hệ những người đã làm việc với C trong các trường đại học và ngành công nghiệp, đã khiến nhiều người chấp nhận phong cách lập trình và quy ước của tác giả như là thực hành khuyến nghị, nếu không phải là thực hành chuẩn. Ví dụ, phong cách viết mã và định dạng của các chương trình được trình bày trong cả hai phiên bản của cuốn sách thường được gọi là "phong cách K&R" hoặc "Phong cách ngoặc kép duy nhất" và đã trở thành phong cách viết mã được sử dụng theo quy ước trong mã nguồn của hạt nhân Unix và Linux.

Xem thêm

Tham khảo

  • The C Programming Language, second edition
  • "C Programming". Bell Labs Computing Sciences Research Center. 2004-06-13. Archived from the original on 2017-02-21. Retrieved 17 January 2017.
  • Answers to The C Programming Language Exercises
  • Tiêu chuẩn ngôn ngữ C
1