Thiết kế bởi | Ken Thompson |
---|---|
Nhà phát triển | Ken Thompson, Dennis Ritchie |
Xuất hiện lần đầu | 1969[1] |
Kiểm tra kiểu | không có kiểu (mọi thứ đều là từ) |
Phần mở rộng tên tập tin | .b |
Ảnh hưởng từ | |
BCPL, PL/I | |
Ảnh hưởng tới | |
C |
B là ngôn ngữ lập trình được phát triển tại Bell Labs vào khoảng năm 1969. Nó là thành quả của Ken Thompson và Dennis Ritchie.
B có nguồn gốc từ BCPL, và tên gọi của nó là sự thu gọn từ BCPL. Đồng nghiệp Dennis Ritchie của Thompson đã suy đoán rằng tên đó có thể dựa trên Bon, một ngôn ngữ lập trình trước đó nhưng không có liên quan, mà Thompson thiết kế để sử dụng trên Multics.[note 1]
B được thiết kế cho các ứng dụng đệ quy, không bằng số, độc lập với máy tính, ví dụ như phần mềm hệ thống và ngôn ngữ.[3]
Ban đầu Ken Thompson[2] và sau đó là Dennis Ritchie[3] đã phát triển B chủ yếu dựa trên ngôn ngữ BCPL mà Thompson đã dùng trong dự án Multics. Về cơ bản B là hệ thống BCPL nhưng bị lược bỏ đi những thành phần nào mà Thompson cảm thấy ông có thể làm được mà không cần để cho nó phù hợp với dung lượng bộ nhớ của các máy tính mini thời kì đó.
Hiện tại B hầu như đã tuyệt chủng và được thay thế bởi ngôn ngữ C.[4] Tuy nhiên nó vẫn thấy được dùng (tính đến năm 2014[cập nhật]) trên máy tính lớn GCOS,[5] và trên một số hệ thống nhúng nhất định (tính đến năm 2000[cập nhật]) vì một số lí do, bao gồm: phần cứng giới hạn trong các hệ thống nhỏ; vấn đề thư viện mở rộng, công cụ, chi phí giấy phép; và chỉ đơn giản là nó đủ tốt cho công việc khác.[4]. AberMUD có ảnh hưởng lớn ban đầu được viết bằng B.
Ví dụ sau từ Users' Reference to B của Ken Thompson:[3]
/* The following function will print a non-negative number, n, to
the base b, where 2<=b<=10. This routine uses the fact that
in the ASCII character set, the digits 0 to 9 have sequential
code values. */
printn(n, b) {
extrn putchar;
auto a;
if (a = n / b) /* assignment, not test for equality */
printn(a, b); /* recursive */
putchar(n % b + '0');
}