✨The C Programming Language

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&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!"

Ả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:

thumb|Chương trình "Hello, World!" của Brian Kernighan (1978) 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&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.

👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**_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
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
Ngôn ngữ lập trình C có một hệ thống mở rộng cho việc **khai báo các biến của các kiểu khác nhau**. Những quy tắc dành cho các kiểu phức tạp có thể gây nhầm
**C++** (**C Plus Plus**, **CPP,** IPA: /siː pləs pləs/) là một ngôn ngữ lập trình đa năng bậc cao (high-level) được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lập
nhỏ|phải|A [[Graphical user interface|GUI Chương trình "Hello World", viết bằng ngôn ngữ Perl]] nhỏ|phải|Có thể thực thi dòng mã ở máy điện tử cầm tay [[PlayStation Portable homebrew|PlayStation Portable Sony.]] nhỏ|phải|Thử máy [[CNC ở Perspex]]
**Dennis MacAlistair Ritchie** (9 tháng 9 năm 1941 – 12 tháng 10 năm 2011), là một nhà khoa học máy tính người Mỹ nổi tiếng vì đã phát triển C và có ảnh hưởng lớn
**Addison-Wesley** là một nhà xuất bản sách giáo khoa và tài liệu máy tính. Nó là một ấn hiệu của Savvas Learning Company, một công ty xuất bản và giáo dục toàn cầu. Ngoài việc
**Andrei Alexandrescu** là một lập trình viên ngôn ngữ C++ người Rumani. Ông được biết đến nhiều nhất là người tiên phong trong thiết kế có nền tảng khôn khéo ([http://en.wikipedia.org/wiki/Policy-based_design policy-based design]) được cung
nhỏ|Infinite loop BSOD Trong lập trình máy tính, **vòng lặp vô hạn** (hay **vòng lặp vô tận**) là một chuỗi các lệnh mà khi được viết ra sẽ kéo dài vô tận, trừ khi có
**Brian Wilson Kernighan** (; sinh ngày 1 tháng 1 năm 1942) Ông là tác giả của nhiều chương trình Unix, bao gồm cả ditroff. Kernighan là đồng tác giả của AWK và AMPL ngôn ngữ
**Danh sách các nhà phát minh** được ghi nhận. ## Danh sách theo bảng chữ cái ### A * Vitaly Abalakov (1906–1986), Nga – các thiết bị cam, móng neo leo băng không răng ren
**Kotlin** là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch
**BCPL** ("**Basic Combined Programming Language**", hay "**Ngôn ngữ lập trình kết hợp cơ bản**") là một ngôn ngữ lập trình máy tính thủ tục, mệnh lệnh, và cấu trúc. Ban đầu được định dùng để
**Swift** là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS và z/OS. được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong
thumb|**[[Phép tính lambda** là một hệ thống hình thức để định nghĩa hàm, ứng dụng hàm và đệ quy được Alonzo Church đề xuất vào những năm 193x.]] **Lý thuyết ngôn ngữ lập trình** (thường
thumb|Minh họa mã nguồn [[Java (programming language)|Java với comment **mở đầu** được biểu thị bằng màu **đỏ** và comment **nội dòng** bằng màu **lục**. **Mã chương trình** là bằng màu **lam**.]]Trong lập
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
nhỏ|Cbmain Trong khoa học máy tính, một **ngôn ngữ lập trình bậc cao** (tiếng Anh: _high-level programming language_) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết
**Ngôn ngữ đa năng** (tiếng Anh: _general-purpose language_) là một ngôn ngữ máy tính có thể áp dụng rộng rãi trên các miền ứng dụng, và thiếu các tính năng chuyên biệt cho một miền
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
**Perl** (viết tắt của _Practical Extraction and Report Language_ - ngôn ngữ kết xuất và báo cáo thực dụng) được Larry Wall xây dựng từ năm 1987, với mục đích chính là tạo ra một
Mô tả Factory method bằng [[Unified Modeling Language|UML]] **Factory method**, đầy đủ là **Factory method pattern**, là thiết kế mẫu hướng đối tượng trong việc thiết kế phần mềm cho máy tính, nhằm giải quyết
thumb|Loại: Bộ điều khiển đơn board Website: www.arduino.cc **Arduino** tảng vi mạch thiết kế mở phần cứng (_Open-source hardware_) và phần mềm (_Open-source software_). Phần cứng Arduino là những bộ vi điều khiển bo mạch
**MATLAB** là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay
phải|192|[[Cây nhị phân, một kiểu đơn giản của cấu trúc dữ liệu liên kết rẽ nhánh.]] thumb|right|Bảng băm Trong khoa học máy tính, **cấu trúc dữ liệu** là một cách lưu dữ liệu trong máy
Đây là danh sách các thuật ngữ tìm thấy trong lập trình hướng đối tượng. Một số có liên quan đến lập trình hướng đối tượng và một số thì không. Lưu ý rằng, các
Đây là danh sách nguồn gốc các thuật ngữ liên quan đến máy tính (hay **danh sách từ nguyên thuật ngữ máy tính**). Nó có liên quan đến cả phần cứng và phần mềm máy
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
Dưới đây là danh sách các môi trường phát triển tích hợp ## Các môi trường phát triển tích hợp nguồn mở/miễn phí ### Các môi trường phát triển tích hợp đa nền miễn phí
Khoa học máy tính nghiên cứu các cơ sở lý thuyết của thông tin và tính toán, cùng với các kỹ thuật thực tiễn để thực hiện và
**Smalltalk** là ngôn ngữ lập trình hướng đối tượng, kiểu dữ liệu động, và có tính phản xạ. Smalltalk được thiết kế nhằm bảo vệ tối đa các đặc điểm ngắn gọn và trong sáng
**Ngôn ngữ truy vấn tích hợp** (tiếng Anh: _Language Integrated Query_, viết tắt _LINQ_) là một thành phần của .NET và .NET Framework cung cấp khả năng truy vấn cấp độ ngôn ngữ và cùng
**Lập trình dựa trên nguyên mẫu** (tiếng Anh: **prototype-based programming**) là một kiểu lập trình hướng đối tượng, trong đó việc tái sử dụng hành vi (được gọi là kế thừa) được thực hiện thông