Lập trình C/Lịch sử
Những phát triển ban đầu
[sửa]Phát triển khởi đầu của C diễn ra tại phòng thí nghiệm Bell của tập đoàn AT&T (Hoa Kỳ) giữa những năm 1969 và 1973, được thực hiện bởi Brian W.Kernighan và Dennis Ritchie. Theo Ritchie thì thời gian sáng tạo nhất là vào năm 1972. Nó được đặt tên là C vì nhiều đặc tính của nó rút ra từ các ngôn ngữ trước đó là B và BCPL. Mục đích của phát triển trên là tạo ra được một ngôn ngữ lập trình bậc cao có thể khả năng chuyển đổi dễ dàng từ hệ thống này sang hệ thống khác thay thế cho hợp ng trong việc lập trình hệ thống. Cũng vào thời gian đó, người ta muốn viết lại hệ điều hành UNIX để có thể cài đặt được hệ điều hành này trên nhiều kiến trúc máy tính khác nhau.
Tính khả chuyển của UNIX là lí do chính khiến cho nó và C trở nên nổi tiếng. Vì hầu hết các chương trình hệ thống sau đó đều được viết bằng C, việc viết thêm các chương trình mới bằng C là điều khá dễ hiểu.
Các chuẩn ngôn ngữ
[sửa]Sau khi hai tác giả công bố ngôn ngữ C trong lần xuất bản đầu tiên của cuốn sách "The C programming language" năm 1978 (phiên bản này của C thường được gọi là K&R C), C không ngừng được phát triển, bổ sung thêm các khả năng mới và được chuẩn hoá. Năm 1989, Viện tiêu chuẩn quóc gia Hoa Kì (ANSI) công bố một tiêu chuẩn cho ngôn ngữ C, mang mã ANSI X3.159-1989. Phiên bản này (thường gọi là "ANSI C" hay "C89") đã được đưa vào lần xuất bản thứ 2 của "The C programming language".
Năm 1990, Tiêu chuẩn ANSI C (với một vài chi tiết về thứ tự được chỉnh lại) đã được tiêu chuẩn hóa bởi Tổ chức Quốc tế về Tiêu chuẩn hóa (ISO), trở thành chuẩn ISO/IEC 9899:1990, thường được gọi là "C90" hay "ISO C". Như vậy về mặt ngôn ngữ, ta có thể đồng nhất ANSI C và ISO C. Ngày nay, ANSI C được hỗ trợ bởi hầu hết các trình dịch C, và hầu hết các mã đều được viết trên ANSI C.
Sau quá trình chuẩn hóa ANSI, đặc tả của ngôn ngữ C tương đối được giữ nguyên trong một thời gian (đúng ra, đã có phiên bản mới của C năm 1995, nhưng phiên bản này hiếm khi được đồng thuận) cho đến năm 1999, tiêu chuẩn ISO/IEC 9899:1999 được phát hành, cho ra một phiên bản mới của C (thường được gọi là "C99"). Các trình dịch C ít nhiều đều hỗ trợ C99, nhưng chỉ một số ít là hỗ trợ đầy đủ.
Tiêu chuẩn gần đây nhất của ngôn ngữ C được phát hành là ISO/IEC 9899:2011 ("C11", được phát hành năm 2011). Các trình dịch hiện tại chỉ hỗ trợ một phần chuẩn này.