Đây là một bài đọc thú vị:
https://en.m.wikipedia.org/wiki/Brquet
Sau đây là những quan sát của riêng tôi.
Các nhà thiết kế C đã rất cẩn thận khi áp dụng ý nghĩa của các ký tự và cấu trúc vì chúng đã được sử dụng hàng trăm năm trong ngôn ngữ viết thông thường. Và làm như vậy, họ phải làm việc với tập hợp con khá hạn chế của các ký tự ASCII. Trong ngôn ngữ phương tây, nhiều ký tự nhóm được sử dụng trong văn bản viết nhưng chúng không biến nó thành ASCII.
Trong ngôn ngữ thông thường, ý nghĩa của dấu ngoặc đơn là cung cấp thông tin bên mà không làm gián đoạn thông điệp chính. Điều này có ý nghĩa khi gọi một thủ tục: thông điệp chính là hành động được thực hiện và thông tin phụ là các đối số.
Niềng răng xoăn được sử dụng để nhóm. "Bộ sưu tập các từ này thuộc về nhau, sẽ được đặt tách biệt với phần còn lại". Vì vậy, nó có ý nghĩa để sử dụng chúng cho các khối mã, câu lệnh ghép.
Dấu ngoặc vuông được sử dụng để chèn vào văn bản không phải là một phần của bản gốc, để làm rõ văn bản gốc và cung cấp ngữ cảnh. Hoặc để biểu thị thiếu sót với dấu chấm lửng: [...]. "Cô ấy [nữ hoàng] không thích thú". Trong lập trình máy tính, sẽ có một chút ý nghĩa khi sử dụng dấu ngoặc để lập chỉ mục mảng vì đây là một loại bối cảnh được cung cấp. "Mảng? Mảng nào? Chà, cụ thể là phần tử đó." Nhưng ngay cả khi ý nghĩa ban đầu không bao gồm đầy đủ việc sử dụng trong ngôn ngữ máy tính, vẫn không có quá nhiều tùy chọn khác trong ASCII.
Vì vậy, tôi muốn nói rằng đó là sự kết hợp của nghệ thuật trước đó và những gì có sẵn tại thời điểm đó dẫn đến việc sử dụng dấu ngoặc vuông để lập chỉ mục mảng.
[chỉnh sửa vì bình luận của Alex]
Theo nguồn tin này , ASCII được giới thiệu vào năm 1963 và được chính phủ phê duyệt vào năm 1968. Việc phát triển ngôn ngữ C không bắt đầu cho đến năm 1969, theo wiki này . Vì vậy, có vẻ như ông Ritchie đã để mắt đến tiêu chuẩn mới được hỗ trợ rộng rãi này được gọi là ASCII khi chọn các nhân vật của mình.
Cũng xin xem (các) câu trả lời khác tạo ra một trường hợp cho Algol, "mẹ của nhiều ngôn ngữ", có ảnh hưởng mạnh mẽ.