Câu hỏi khá đơn giản, nhưng tôi không thể tìm ra câu hỏi nào. Ai là người đầu tiên mô tả ý tưởng về một con trỏ? Bản thân khái niệm trừu tượng?
Câu hỏi khá đơn giản, nhưng tôi không thể tìm ra câu hỏi nào. Ai là người đầu tiên mô tả ý tưởng về một con trỏ? Bản thân khái niệm trừu tượng?
Câu trả lời:
Bud Lawson đã nhận được Giải thưởng Tiên phong Máy tính của IEEEvài năm trước, vì đã phát minh ra biến con trỏ vào năm 1964.
Con trỏ thực sự được lưu trữ theo địa chỉ của một thanh ghi. Như vậy, tất cả các ngôn ngữ trình biên dịch đều thực hiện điều này theo một cách nào đó và trước đó, tất cả các mã máy mã hóa cứng đã thực hiện điều này.
Sẽ có một số tranh luận về máy tính đầu tiên thực hiện điều này. Theo như tôi biết, Hệ thống quy mô nhỏ của Đại học Manchestern là hệ thống đầu tiên bao gồm lưu trữ được giải quyết bởi các thanh ghi kiểm soát chương trình. Nó có thể đã được hệ thống ENIAC đi trước nhưng nó có rất ít bộ lưu trữ để biến việc lưu trữ theo địa chỉ thành một điểm cần thiết.
Con trỏ được tham khảo rộng hơn. Ngôn ngữ đầu tiên có bất cứ thứ gì như thế là ALGOL 60 có thể gọi bằng tên. Câu trả lời này trên SO đi vào một số chi tiết. PL / Tôi đã có con trỏ như BCPL , điều đó có nghĩa là CPL có thể cũng vậy mặc dù tôi không tìm thấy bất kỳ bằng chứng nào cho việc này. CPL là rất khó để cụ thể thông tin trên.
Để trả lời trực tiếp hơn câu hỏi của bạn với "ai" hoặc DW Barron, Christopher Strachey hoặc Martin Richards có lẽ đã đặt ra thuật ngữ "con trỏ".
Thật khó để đoán chính xác ai đã đưa ra chúng, nhưng các thanh ghi chỉ mục trong IBM 704 có lẽ là triển khai đầu tiên. Do đó, từ quan điểm ngôn ngữ lập trình, chắc chắn nó sẽ là ngôn ngữ lắp ráp của 704.
Rõ ràng phải mất vài năm sau đó, trước khi các ngôn ngữ lập trình cấp cao hơn được thiết kế để tận dụng sự đổi mới này, nhưng sau đó hầu hết các phát minh đã được thực hiện, và chủ yếu là chọn tên, ký hiệu, v.v. để mô tả phần cứng là gì được hỗ trợ.
Con trỏ như một khái niệm cơ bản được sử dụng trong "địa chỉ gián tiếp" một chức năng trên hầu hết các CPU trở lại ít nhất là 6502.
Commodore đã sử dụng "hạt nhân" trên các máy tính VIC 20, C64 và C128 của mình. một bộ phần mềm địa chỉ cố định có thể gọi mà sau đó sẽ được chuyển hướng đến mã hiện tại. Sau đó, họ có thể sửa đổi hệ điều hành mà không phá vỡ phần mềm hiện có.
Tôi nghĩ rằng 8080 và Z80 cũng có địa chỉ gián tiếp, nhưng tôi không chắc chắn và tôi không nhớ nó trong 8008.
Vâng - Lần đầu tiên một cú pháp cụ thể và ngữ nghĩa được phát triển cho các biến con trỏ là cho Ngôn ngữ lập trình PL / I vào năm 1964.
Bài báo chuyên đề về điều này xuất hiện vào năm 1967 trong Truyền thông ACM năm 1967.