Lịch sử hình thành và phát triển ngôn ngữ lập trình C
Nguồn gốc của C liên kết chặt chẽ với sự phát triển của hệ điều hành Unix , ban đầu Unix được tạo ra bằng ngôn ngữ lắp ráp chạy trên máy tính PDP-7
bởi Dennis Ritchie
và Ken Thompson
tại Bell Lab của tập đoàn viễn thông AT&T. Sau đó họ kết hợp nhiều ý tưởng từ các đồng nghiệp, họ chuyển hệ điều hành sang PDP-11. Phiên bản PDP-11 ban đầu của Unix được phát triển theo ngôn ngữ lắp ráp. Các nhà phát triển viết lại Unix sử dụng ngôn ngữ B là phiên bản đơn giản hóa ngôn ngữ BCPL (Basic Combined Programming Language) của Thompson. Tuy nhiên, ngôn ngữ B không có khả năng sử dụng một số tính năng của PDP-11, đặc biệt là tính địa chỉ byte, dẫn đến thiết kế ra ngôn ngữ C. Tên của C được chọn chỉ đơn giản như là sau khi B.
bởi Dennis Ritchie
và Ken Thompson
tại Bell Lab của tập đoàn viễn thông AT&T. Sau đó họ kết hợp nhiều ý tưởng từ các đồng nghiệp, họ chuyển hệ điều hành sang PDP-11. Phiên bản PDP-11 ban đầu của Unix được phát triển theo ngôn ngữ lắp ráp. Các nhà phát triển viết lại Unix sử dụng ngôn ngữ B là phiên bản đơn giản hóa ngôn ngữ BCPL (Basic Combined Programming Language) của Thompson. Tuy nhiên, ngôn ngữ B không có khả năng sử dụng một số tính năng của PDP-11, đặc biệt là tính địa chỉ byte, dẫn đến thiết kế ra ngôn ngữ C. Tên của C được chọn chỉ đơn giản như là sau khi B.
Dennis Ritchie và Ken Thompson tại Bell Lab
Nguồn
gốc của C liên kết chặt chẽ với sự phát triển của hệ điều hành Unix , ban đầu
Unix được tạo ra bằng ngôn ngữ lắp ráp chạy trên máy tính PDP-7 bởi Dennis
Ritchie và Ken Thompson tại Bell Lab của tập đoàn viễn thông AT&T. Sau đó họ kết hợp nhiều ý
tưởng từ các đồng nghiệp, họ chuyển hệ điều hành sang PDP-11. Phiên bản PDP-11
ban đầu của Unix được phát triển theo ngôn ngữ lắp ráp. Các nhà phát triển viết
lại Unix sử dụng ngôn ngữ B là phiên bản đơn giản hóa ngôn ngữ BCPL (Basic Combined
Programming Language) của Thompson. Tuy nhiên, ngôn ngữ B không có khả năng sử
dụng một số tính năng của PDP-11, đặc biệt là tính địa chỉ byte, dẫn đến thiết
kế ra ngôn ngữ C. Tên của C được chọn chỉ đơn giản như là sau khi B.
Sau đó
ngôn ngữ C được thiết kế để chạy trên nhiều nền tảng khác nhau thông qua
các trình biên dịch như: Trình biên dịch cho máy Honeywell 6000, trình
biên dịch C trên máy IBM…
Vào năm
1973, ngôn ngữ C được bổ sung các cấu trúc nên rất mạnh mẽ. Năm 1977,
Ritchie và Stephen C. Johnson đã thay đổi ngôn ngữ C để tạo ra sự sự linh
động. Trình biên dịch C Portable của Johnson là cơ sở cho một số triển khai
trên các nền tảng mới.
Trong
suốt những năm của thập niên 1970, C trở nên phổ biến. Nhiều đại học và tổ chức
bắt đầu tạo ra các ngôn ngữ C riêng cho các đề án của họ dẫn đến nhiều phiên
bản C khác nhau và không được quy chuẩn. Năm 1983, ANSI (American National
Standards Institute - Viện Tiêu chuẩn Quốc gia Hoa Kỳ) thành lập một hội đồng
để hoàn tất đặc tả tiêu chuẩn cho C gọi là "ANSI C". Công việc này
dẫn tới sự hình thành chuẩn "C89" trong năm 1989 cho đến nay là C/C++
17. Một bộ phận của kết quả chuẩn này là một tập hợp các thư viện phần mềm gọi
là thư viện chuẩn ANSI C đã ra đời.
Phiên
bản viết lại sau này của chuẩn C đã thêm vào nhiều tập tin tiêu đề cần thiết
cho thư viện. Hỗ trợ cho nhiều sự mở rộng khác nhau giữa các sư thiết lập của
C. C cũng được dùng để lập trình hệ thống. Một chương
trình hệ thống có ý nghĩa liên quan đến hệ điều hành của máy tính hay những
tiện ích hỗ trợ nó. Hệ điều hành (OS), trình thông dịch (Interpreters), trình
soạn thảo (Editors), chương trình Hợp Ngữ (Assembly) là các chương trình hệ
thống. Hệ điều hành UNIX được phát triển dựa vào C. C đang được sử dụng rộng rãi
bởi vì tính hiệu quả và linh hoạt. Trình biên dịch (compiler) C có sẵn cho hầu
hết các máy tính.
C khi thực thi cũng rất nhanh như hợp ngữ
(Assembly). Lập trình viên có thể tạo ra và bảo trì thư viện hàm mà chúng sẽ
được tái sử dụng cho chương trình khác. Do đó, những dự án lớn có thể được quản
lý dễ dàng mà tốn rất ít công sức.
Ngôn ngữ C lại được tiếp tục phát triển
thành C++, C#, C Object, Java, PHP… đây
là những ngôn ngữ phổ biến để lập trình ứng dụng, lập trình hệ thống, web,
internet, database hiện nay. Nhưng để hiểu được các ngôn ngữ này bạn cần biến
cú pháp cơ bản của ngôn ngữ C.