Việc sử dụng sớm nhất của cây gỗ cây trong khoa học máy tính là gì?


18

Tôi có một câu hỏi lịch sử nhỏ, như tiêu đề đã nói, tôi đang tìm kiếm việc sử dụng sớm cây (như cấu trúc dữ liệu, cây tìm kiếm, bất cứ thứ gì) trong khoa học máy tính.


2
Có khả năng sử dụng thuật ngữ này sớm hơn trong bối cảnh lý thuyết đồ thị.
Juho

Có lẽ từ khi bắt đầu . Oh, bạn có nghĩa loại cây.
200_success

Câu trả lời:


13

Wikipedia nói rằng việc sử dụng cây đầu tiên trong toán học là của Cayley vào năm 1857.

Vì việc sử dụng trong khoa học máy tính được lấy trực tiếp từ toán học, nên có vẻ cơ bản hơn để hỏi khi nào chúng bắt nguồn từ đó. Trừ khi các nhà khoa học máy tính ban đầu gọi cây là một cái gì đó khác, nhà khoa học máy tính đầu tiên sử dụng "cây" dường như không có ý nghĩa gì hơn là, người Úc đầu tiên sử dụng "cây".


Cayley có lẽ đã đặt ra từ "cây", nhưng cây đã được sử dụng trước đó (ví dụ, bởi Kirchhoff). Trong thế kỷ 19, các nhà toán học không thực sự quan tâm đến các thuật toán (một số trường hợp ngoại lệ ở đây). Cây chắc chắn không được sử dụng làm cấu trúc dữ liệu như cây tìm kiếm trong các tác phẩm này.
A.Schulz

11

Theo TAOCP của Donald Knuth, Tập. 1, pg. 459 các giấy tờ sau đây có thể được coi là một trong những lần xuất hiện đầu tiên của cây trong CS.

  • HG Kahrimanian, Phân biệt phân tích bằng máy tính kỹ thuật số , Hội thảo chuyên đề về lập trình tự động, 6 Tiết14, 1952
  • KE Iverson và LR Johnson, IBM Corp báo cáo nghiên cứu RC-390, RC-603 , 1961
  • AJ Perils và C. Thornton, Cây có ren , CACM 3, 195 Tiết204, 1960

Kiểm tra TAOCP để biết thêm thông tin và tham khảo thêm.


Cảm ơn, điều đó có vẻ rất hứa hẹn. Liệu tài liệu tham khảo thứ hai có một tiêu đề? Tôi không có TAOCP trong tay, tôi sẽ đến thư viện sau.
john_leo

4
Đây là một lập luận của cơ quan có thẩm quyền thực sự có thể hoạt động, vì Knuth được biết đến là một người sưu tầm tài liệu tham khảo rất siêng năng.
Raphael

NGƯỜI DÙNG, KE Một ký hiệu lập trình cho cây. Báo cáo nghiên cứu R - 390, Trung tâm nghiên cứu II3M (tháng 1 năm 1961). Đó là từ đây: dl.acm.org/citation.cfm?id=366828 cũng có thể là một tài liệu tham khảo tốt.
KWillets

@Raphael Ông thực sự đã viết cuốn sách về khoa học máy tính, phải không ...
corsiKa

6

Ê-sai: "" Và sẽ xuất hiện một cây gậy ra khỏi thân cây Jesse, và một nhánh sẽ mọc ra từ gốc rễ của anh ta "

Cây như một mô hình dữ liệu cho thông tin phả hệ thực sự rất cổ xưa.


2
"... trong khoa học máy tính ."
Raphael

@Raphael Điểm công bằng, mặc dù nó được cho là một cấu trúc dữ liệu, được gọi là khoa học máy tính một cách khó hiểu.
David Richerby

3
Tôi có xu hướng quan điểm của Dijkstra rằng khoa học máy tính là tất cả về cấu trúc dữ liệu và thuật toán, và có rất ít liên quan đến máy tính.
Michael Kay

4

Tôi tìm thấy bài báo này trên Tạp chí Máy tính (BCS) năm 1960:

PF Windley: Cây, rừng và sắp xếp lại.

Ông giới thiệu khái niệm "cây", "được mô tả ngắn gọn bởi Douglas (1959)" [Sandy Douglas] "và được gán cho Berners-Lee" [Conway Berners-Lee, cha của Tim].

Điều thú vị là cây của anh ta chính xác hơn thực vật so với cây CS hiện đại, ở chỗ chúng có gốc ở phía dưới chứ không phải trên đỉnh!

http://comjnl.oxfordjournals.org/content/3/2/84.full.pdf+html?sid=a1c02733-1497-49e9-b308-a05c1dcca1df

Thật trùng hợp, trích dẫn cuối cùng trong bài báo là một bài báo mà Windley đồng tác giả với Tony Rowland Jones và "LF Kay", đó là một sai lầm của LR Kay, cha tôi, người đã tiếp tục điều hành UCCA, hệ thống tuyển sinh đại học trung ương ở Anh.

Một bức thư của Conway BL gửi cho Tạp chí Máy tính bình luận về bài báo này và một phản hồi từ Windley, được phân chia giữa các trang 174 và 184 của vấn đề sau:

http://comjnl.oxfordjournals.org/content/3/3/174.full.pdf+html http://comjnl.oxfordjournals.org/content/3/3/175.full.pdf+html


3

Giải tích Lambda có từ những năm 1930. Ngữ pháp của nó là một ứng dụng ban đầu của cây, đặc biệt là cây cú pháp trừu tượng. Mỗi thuật ngữ LC là một cái cây. Các biến là các nút lá. Cả hai thuật ngữ trừu tượng và ứng dụng bao gồm các thuật ngữ khác, vì vậy chúng là các nút không có lá.

Tôi không biết khi nào các thuật ngữ LC lần đầu tiên được coi là cây. Tuy nhiên, các bằng chứng ban đầu liên quan đến LC yêu cầu phân tích trường hợp, giống như những gì các lập trình viên viết chương trình để đi bộ AST làm bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.