B (ngôn ngữ lập trình)

B
Thiết kế bởiKen Thompson
Nhà phát triểnKen Thompson, Dennis Ritchie
Xuất hiện lần đầu1969; 55 năm trước (1969)[1]
Kiểm tra kiểukhô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 ThompsonDennis 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]

Lịch sử

[sửa | sửa mã nguồn]

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) 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) 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');
}
  1. ^ "Its name most probably represents a contraction of BCPL, though an alternate theory holds that it derives from Bon [Thompson 69], an unrelated language created by Thompson during the Multics days. Bon in turn was named either after his wife Bonnie, or (according to an encyclopedia quotation in its manual), after a religion whose rituals involve the murmuring of magic formulas."[2]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ “B - computer programming language”.
  2. ^ a b Ritchie, Dennis M. (tháng 3 năm 1993). “The Development of the C Language”. ACM SIGPLAN Notices. 28 (3): 201–208. doi:10.1145/155360.155580. Bản gốc lưu trữ ngày 11 tháng 4 năm 2019. Truy cập ngày 30 tháng 1 năm 2019.
  3. ^ a b c Thompson, Ken (ngày 7 tháng 1 năm 1972). “Users' Reference to B” (PDF). Bell Laboratories. Bản gốc (PDF) lưu trữ ngày 11 tháng 6 năm 2015. Truy cập ngày 21 tháng 3 năm 2014.
  4. ^ a b Johnson and Kernighan. “THE PROGRAMMING LANGUAGE B”. Bell Laboratories. Bản gốc lưu trữ ngày 11 tháng 6 năm 2015. Truy cập ngày 21 tháng 3 năm 2014.
  5. ^ “Thinkage UW Tools Package”. Thinkage, Ltd. Truy cập ngày 26 tháng 3 năm 2014.

Liên kết ngoài

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Nhật thực: Sự kỳ diệu của tự nhiên HAY sự báo thù của quỷ dữ?
Nhật thực: Sự kỳ diệu của tự nhiên HAY sự báo thù của quỷ dữ?
Từ thời xa xưa, con người đã cố gắng để tìm hiểu xem việc mặt trời bị che khuất nó có ảnh hưởng gì đến tương lai
[Genshin Impact] Tại sao Eula lại hot đến vậy
[Genshin Impact] Tại sao Eula lại hot đến vậy
Bài viết sẽ tổng hợp mọi nội dung liên quan đến nhân vật mới Eula trong Genshin Impact
Tổng quan nguồn gốc và thế giới Goblin Slayer
Tổng quan nguồn gốc và thế giới Goblin Slayer
Khi Truth và Illusion tạo ra Goblin Slayer, số skill points của GS bình thường, không trội cũng không kém, chỉ số Vitality (sức khỏe) tốt, không bệnh tật, không di chứng, hay có vấn đề về sức khỏe
Chân Huyết-Thần Tổ Cainabel Overlord
Chân Huyết-Thần Tổ Cainabel Overlord
Cainabel hay còn biết tới là Huyết Thần (Chân Huyết) 1 trong số rất nhiều vị thần quyền lực của Yggdrasil và cũng là Trùm sự kiện (Weak Event Boss) trong Yggdrasil