The C Programming Language

The C Programming Language là một cuốn sách hướng dẫn lập trình ngôn ngữ C, tác giả Brian Kernighan và Dennis Ritchie, những người sau này đã thiết kế và triển khai ngôn ngữ này ban đầu, cũng như đồng thiết kế hệ điều hành Unix mà sự phát triển của ngôn ngữ được gắn bó chặt chẽ với nhau. Cuốn sách là trung tâm của sự phát triển và phổ biến của ngôn ngữ lập trình C và vẫn được đọc và sử dụng rộng rãi cho đến ngày nay. Vì cuốn sách được đồng tác giả bởi nhà thiết kế ngôn ngữ gốc và vì ấn bản đầu tiên của cuốn sách được coi là tiêu chuẩn thực tế cho ngôn ngữ trong nhiều năm, cuốn sách được nhiều người coi là tài liệu tham khảo có giá trị trên C.
Lịch sử.
C được tạo ra bởi Dennis Ritchie tại Bell Labs vào đầu những năm 1970 như một phiên bản tăng cường cho ngôn ngữ B của Ken Thompson.
Một nhân viên khác của Bell Labs, Brian Kernighan, đã viết hướng dẫn C đầu tiên,
và ông đã thuyết phục Ritchie đồng tác giả một cuốn sách về ngôn ngữ này.
Kernighan sẽ viết hầu hết tài liệu về "kho lưu trữ" của cuốn sách, và sổ tay tham khảo của Ritchie trở thành phụ lục của nó.
Ấn bản đầu tiên, xuất bản ngày 22 tháng 2 năm 1978, là cuốn sách đầu tiên được phổ biến rộng rãi về ngôn ngữ lập trình C. Phiên bản c này đôi khi được gọi là K&amp;R C (theo tên các tác giả của cuốn sách), thường để phân biệt phiên bản đầu tiên này với phiên bản C sau được tiêu chuẩn hóa là "ANSI C".
Vào tháng 4 năm 1988, ấn bản thứ hai của cuốn sách được xuất bản, được cập nhật để đề cập đến những thay đổi đối với ngôn ngữ do tiêu chuẩn ANSI C mới sau đó, đặc biệt là việc đưa tài liệu tham khảo vào các thư viện tiêu chuẩn. Ấn bản thứ hai của cuốn sách (và gần đây nhất là năm 2018) đã được dịch sang hơn 20 ngôn ngữ. Vào năm 2012, một phiên bản sách điện tử của ấn bản thứ hai đã được xuất bản ở các định dạng ePub, Mobi và PDF.
ANSI C, được chuẩn hóa lần đầu vào năm 1989 (với tên ANSI X3.159-1989),kể từ đó đã trải qua nhiều lần sửa đổi, trong đó gần đây nhất là ISO/IEC 9899:2018 (hay còn được gọi là "C18"), được thông qua làm tiêu chuẩn ANSI vào tháng 6 năm 2018. Tuy nhiên, không có ấn bản mới nào của " Ngôn ngữ lập trình C " được ban hành để bao gồm các tiêu chuẩn mới hơn.
Tiếp nhận.
Tạp chí "Byte" đã tuyên bố vào tháng 8 năm 1983, "["The C Programming Language"] là tác phẩm chính thức về ngôn ngữ C. Đừng đọc thêm cho đến khi bạn có cuốn sách này!" Jerry Pournelle đã viết trên tạp chí năm đó rằng cuốn sách "vẫn là tiêu chuẩn... hơi ngắn". Ông ấy tiếp tục, "Bạn có thể học ngôn ngữ C mà không cần đến Kernighan và Ritchie, nhưng đó là cách làm khó. Bạn cũng đang làm việc quá chăm chỉ nếu bạn biến nó thành cuốn sách duy nhất về C mà bạn mua."
Ảnh hưởng.
"The C Programming Language" thường được coi là mô hình cho kỹ thuật viết, với những người đánh giá mô tả nó có cách trình bày rõ ràng và cách xử lý ngắn gọn. Các ví dụ thường bao gồm các chương trình hoàn chỉnh thuộc loại mà người ta có thể gặp phải trong việc sử dụng ngôn ngữ hàng ngày, với trọng tâm là lập trình hệ thống. Các tác giả của nó cho biết:
Cuốn sách đã giới thiệu "Hello, World!" chương trình này chỉ in văn bản "hello, world", như một minh họa của một chương trình C hoạt động tối thiểu. Kể từ đó, nhiều văn bản đã tuân theo quy ước đó để giới thiệu một ngôn ngữ lập trình.
Trước khi ANSI C ra đời, ấn bản đầu tiên của văn bản được coi là tiêu chuẩn thực tế của ngôn ngữ dành cho các nhà biên dịch C. Với việc tiêu chuẩn hóa ANSI C, các tác giả đã viết phiên bản thứ hai một cách có ý thức hơn cho các lập trình viên hơn là các nhà biên dịch, nói rằng:
Ảnh hưởng của "The C Programming Language" on programmers, đối với các lập trình viên, thế hệ những người đầu tiên làm việc với C trong các trường đại học và công nghiệp, đã khiến nhiều người chấp nhận phong cách và quy ước lập trình của các tác giả là thông lệ được khuyến nghị, nếu không phải là thực hành quy chuẩn. Ví dụ: kiểu mã hóa và định dạng của các chương trình được trình bày trong cả hai ấn bản của cuốn sách thường được gọi là "kiểu K&amp;R" hoặc "Kiểu một dấu ngoặc nhọn" và trở thành kiểu mã hóa được sử dụng theo quy ước trong mã nguồn cho Unix và nhân Linux.