Khác biệt giữa bản sửa đổi của “The C Programming Language”

Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi
Dòng 1:
{{Chất lượng kém/nguồn|ngày=29|tháng=09|năm=2020|lý do=Quá ngắn}}
{{Infobox book
| name = The C Programming Language
Hàng 18 ⟶ 17:
}}
{{tiêu đề nghiêng}}
'''''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 [[C (ngôn ngữ lập trình)|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.<ref name="ward198308">{{cite news |last=Ward |first=Terry A. |url=https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n267/mode/2up |title=Annotated C / A Bibliography of the C Language |work=Byte |date=August 1983 |access-date=31 January 2015 |pages=268}}</ref><ref>{{Cite book|url=https://books.google.com/books?id=4Mfe4sAMFUYC|title=C in a Nutshell|last=Prinz|first=Peter|last2=Crawford|first2=Tony|date=2005-12-16|publisher=O'Reilly Media, Inc.|isbn=9780596550714|page=3|language=en}}</ref>
 
==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 [[B (ngôn ngữ lập trình)|ngôn ngữ B]] của [[Ken Thompson]].<ref>{{cite web
Ấn bản đầu tiên được xuất bản ngày 22 tháng 2 năm 1978. Nó là cuốn sách phổ biến đầu tiên về ngôn ngữ lập trình C.<ref name="k&r1e">{{cite book |last1= Kernighan |first1= Brian W. |author-link1= Brian Kernighan |last2= Ritchie |first2= Dennis M. |author-link2= Dennis Ritchie |title= The C Programming Language |edition= 1st |publisher= [[Prentice Hall]] |date= February 1978 |location= [[Englewood Cliffs, NJ]] |isbn= 0-13-110163-3 |url= https://archive.org/details/cprogramminglang00kern }}</ref>
|url=https://www.bell-labs.com/usr/dmr/www/chist.html
|last=Ritchie
|first=Dennis M.
|title=The Development of the C Language
|date=1993
|work=History of Programming Languages, 2nd Edition
|access-date=2018-11-11
}}</ref>
Một nhân viên khác của Bell Labs, [[Brian Kernighan]], đã viết hướng dẫn C đầu tiên,<ref>{{cite web|url=http://www.harmonyatwork.in/blog/2009/10/leap-in-and-try-things-brian-kernighan/|title=Leap In and Try Things: Interview with Brian Kernighan|tác giả=|họ=|tên=|date=October 24, 2009|work=Harmony at Work|archiveurl=https://web.archive.org/web/20120723182804/http://www.harmonyatwork.in/blog/2009/10/leap-in-and-try-things-brian-kernighan/|archivedate=July 23, 2012|url hỏng=|access-date=2013-03-03}}</ref>
và ông đã thuyết phục Ritchie đồng tác giả một cuốn sách về ngôn ngữ này.<ref>{{cite web
|url=https://www.youtube.com/watch?v=de2Hsvxaf8M
|title='C' Programming Language: Brian Kernighan - Computerphile
|author=Computerphile
|date=2015-08-18
|access-date=2018-11-11
}}</ref>
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 được, xuất bản ngày 22 tháng 2 năm 1978. Nó, là cuốn sách đầu tiên được phổ biến đầurộng tiênrã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]]''.<ref name="k&r1e">{{cite book |last1= Kernighan |first1= Brian W. |author-link1= Brian Kernighan |last2= Ritchie |first2= Dennis M. |author-link2= Dennis Ritchie |title= The C Programming Language |edition= 1st |publisher= [[Prentice Hall]] |date= February 1978 |location= [[Englewood Cliffs, NJ]] |isbn= 0-13-110163-3 |url= https://archive.org/details/cprogramminglang00kern }}</ref>
Tháng tư năm 1988, cuốn sách được tái bản lần hai, cập nhật những thay đổi mới trong tiêu chuẩn ANSI C. Tính tới năm 2018, cuốn sách đã được dịch sang 20 thứ tiếng. Năm 2012, người ta cho ra đời một phiên bản điện tử.
 
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 chuẩn 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 (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!"<ref name="ward198308">{{cite news |last=Ward |first=Terry A. |url=https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n267/mode/2up |title=Annotated C / A Bibliography of the C Language |work=Byte |date=August 1983 |access-date=31 January 2015 |pages=268}}</ref> [[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."<ref name="pournelle198312">{{cite news |last=Pournelle |first=Jerry |authorlink=Jerry Pournelle |url=https://archive.org/stream/byte-magazine-1983-12/1983_12_BYTE_08-12_Easy_Software#page/n519/mode/2up |title=The User Looks at Books |work=Byte |date=December 1983 |access-date=24 July 2016 |pages=519}}</ref>
 
== Ả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:
 
{{quote|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<ref name="k&r2e">{{cite book |last1= Kernighan |first1= Brian |author-link1= Brian Kernighan |last2= Ritchie |first2= Dennis M. |author-link2= Dennis Ritchie |title= The C Programming Language |edition= 2nd |publisher= [[Prentice Hall]] |date= March 1988 |location= [[Englewood Cliffs, NJ]] |url= https://archive.org/details/cprogramminglang00bria |isbn= 0-13-110362-8 |url-status=dead |df= }}</ref>|source=}}
[[File:Hello World Brian Kernighan 1974.jpg|thumb|Chương trình "Hello, World!" của Brian Kernighan (1978)]]
Cuốn sách đã giới thiệu "[[Chương trình máy tính "Xin chào thế giới"|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:
 
{{quote|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<ref name="k&r2e" />|source=}}
 
Ả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à [[Hạt nhân Linux|nhân Linux]].
 
==Xem thêm==
* [[The C++ Programming Language]]
 
==Tham khảo==
{{tham khảo}}
== Liên kết ngoài ==
 
* [https://archive.org/details/TheCProgrammingLanguageFirstEdition The C Programming Language], first edition available at the ''[[Internet Archive]]''
* {{Cite web|url=https://www.learnbix.com/cprogramming/learn-c|archive-url=https://web.archive.org/web/20170221011231/https://www.learnbix.com/cprogramming/learn-c|archive-date=2017-02-21|title=C Programming|last=|first=|date=2004-06-13|website=Bell Labs Computing Sciences Research Center|publisher=|access-date=17 January 2017}}. Another archived page: {{Cite web|url=http://s3-us-west-2.amazonaws.com/belllabs-microsite-dritchie/cbook/index.html|title=The C Programming Language|date=2016-02-04}}
* [http://clc-wiki.net/wiki/K%26R2_solutions Answers to The C Programming Language Exercises]
{{sơ khai sách}}{{Sơ khai tin học}}
[[Thể loại:Sách tiếng Anh]]
[[Thể loại:Chờ xóa]]