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. 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&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. 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." 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: Chúng tôi đã cố gắng giữ lại sự ngắn gọn của ấn bản đầu tiên. C không phải là một ngôn ngữ lớn, và nó không được phục vụ tốt bởi một cuốn sách lớn. Chúng tôi đã cải thiện việc trình bày các tính năng quan trọng, chẳng hạn như con trỏ, là trọng tâm của lập trình C. Chúng tôi đã tinh chỉnh các ví dụ ban đầu và đã thêm các ví dụ mới trong một số chương. Ví dụ, việc xử lý các khai báo phức tạp được tăng cường bởi các chương trình chuyển đổi các khai báo thành từ và ngược lại. Như trước đây, tất cả các ví dụ đã được kiểm tra trực tiếp từ văn bản, ở dạng máy có thể đọc được. — lời nói đầu của ấn bản thứ hai 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: Phụ lục A, sách hướng dẫn tham khảo, không phải là tiêu chuẩn, mà là nỗ lực của chúng tôi để truyền đạt những điều cơ bản của tiêu chuẩn trong một không gian nhỏ hơn. Nó có nghĩa là để các lập trình viên dễ hiểu, nhưng không phải là định nghĩa cho người viết trình biên dịch - vai trò đó chính xác thuộc về tiêu chuẩn. Phụ lục B là bản tóm tắt về cơ sở vật chất của thư viện tiêu chuẩn. Nó cũng có nghĩa là để tham khảo bởi các lập trình viên, không phải người triển khai. Phụ lục C là một bản tóm tắt ngắn gọn những thay đổi so với phiên bản gốc. — lời nói đầu của ấn bản thứ hai Ả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&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. The C++ Programming Language ^ a b Ward, Terry A. (tháng 8 năm 1983). “Annotated C / A Bibliography of the C Language”. Byte. tr. 268. Truy cập ngày 31 tháng 1 năm 2015. ^ Prinz, Peter; Crawford, Tony (ngày 16 tháng 12 năm 2005). C in a Nutshell (bằng tiếng Anh). O'Reilly Media, Inc. tr. 3. ISBN 9780596550714. ^ Ritchie, Dennis M. (1993). “The Development of the C Language”. History of Programming Languages, 2nd Edition. Truy cập ngày 11 tháng 11 năm 2018. ^ “Leap In and Try Things: Interview with Brian Kernighan”. Harmony at Work. ngày 24 tháng 10 năm 2009. Bản gốc lưu trữ ngày 23 tháng 7 năm 2012. Truy cập ngày 3 tháng 3 năm 2013. ^ Computerphile (ngày 18 tháng 8 năm 2015). “'C' Programming Language: Brian Kernighan - Computerphile”. Truy cập ngày 11 tháng 11 năm 2018. ^ Kernighan, Brian W.; Ritchie, Dennis M. (tháng 2 năm 1978). The C Programming Language (ấn bản 1). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. ^ Pournelle, Jerry (tháng 12 năm 1983). “The User Looks at Books”. Byte. tr. 519. Truy cập ngày 24 tháng 7 năm 2016. ^ a b Kernighan, Brian; Ritchie, Dennis M. (tháng 3 năm 1988). The C Programming Language (ấn bản 2). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110362-8. The C Programming Language, first edition available at the Internet Archive “C Programming”. Bell Labs Computing Sciences Research Center. ngày 13 tháng 6 năm 2004. Bản gốc lưu trữ ngày 21 tháng 2 năm 2017. Truy cập ngày 17 tháng 1 năm 2017.. Another archived page: “The C Programming Language”. ngày 4 tháng 2 năm 2016. Answers to The C Programming Language Exercises