Що найчастіше використовують «дерева» в інформатиці?


18

У мене є невелике запитання з історії, а саме, як випливає з назви, я шукаю раннє використання дерев (як структура даних, дерево пошуку, що завгодно) в інформатиці.


2
Ймовірно, раніше використовується термін у контексті теорії графів.
Juho

Напевно, від початку . О, ви маєте в виду , що такі дерева.
200_успіх

Відповіді:


13

У Вікіпедії сказано, що першим використанням дерева в математиці був Кейлі в 1857 році.

Оскільки використання в інформатиці взято безпосередньо з математики, здається, більш важливим є питання, коли вони виникли там. Якщо комп'ютерні спочатку не називали дерева чимось іншим, перший вчений-комп’ютер, який застосував "дерево", не здається більш значущим, ніж, скажімо, перший австралієць, який використовував "дерево".


Кейлі, ймовірно, придумав слово "дерево", але дерева використовувалися раніше (наприклад, Кірхгофф). У 19 столітті математики не дуже дбали про алгоритми (тут є деякі винятки). У цих роботах дерева точно не використовувались як структура даних, як дерево пошуку.
А.Шульц

11

За даними TAOCP Дональда Кнута, Vol. 1, пг. 459 наступні документи можуть розглядатися як одна з перших появи дерев у КС.

  • Г.Г. Каріманіан, Аналітична диференціація цифровим комп'ютером , Симпозіум з автоматичного програмування, 6–14, 1952
  • К. Е. Іверсон і Л. Р. Джонсон, дослідницькі дослідження корпорації IBM Corp. RC-390, RC-603 , 1961 рік
  • AJ Perils і C. Thornton, Нитяні дерева , CACM 3, 195–204, 1960

Перегляньте TAOCP для отримання додаткової інформації та додаткових посилань.


Дякую, це виглядає дуже перспективно. Чи має другий посилання назву? У мене немає TAOCP під рукою, я піду до бібліотеки пізніше.
john_leo

4
Це аргумент влади, який може насправді спрацювати, враховуючи, що Кнут, як відомо, дуже ретельний колекціонер посилань.
Рафаель

INVERSON, KE Позначення програмування для дерев. Доповідь про дослідження R - 390, Науково-дослідний центр II3M (січень 1961). Це звідси: dl.acm.org/citation.cfm?id=366828, що також може бути хорошим посиланням.
KWillets

@Raphael Він буквально написав книгу з інформатики, чи не так ...
corsiKa

6

Ісая: "" І вийде прут із стебла Єссея, і гілка виросте з його коріння "

Дерево як модель даних для генеалогічної інформації насправді дуже давнє.


2
"... в галузі інформатики ."
Рафаель

@Raphael Справедливий момент, хоча це, мабуть, структура даних, яка є пошарово інформатикою, за іншою назвою.
Девід Річербі

3
Я схильний до думки Дейкстри, що інформатика стосується структури даних та алгоритмів і має дуже мало спільного з комп'ютерами.
Майкл Кей

4

Цей документ я знайшов у комп’ютерному журналі (BCS) за 1960 рік:

П. Ф. Віндлі: дерева, ліси та перестановка.

Він вводить поняття "дерева", "коротко описане Дугласом (1959)" [Сенді Дуглас] "і приписується Бернерсу-Лі" [Конвей Бернерс-Лі, батько Тіма].

Цікаво, що його дерева ботанічно точніші за сучасні дерева CS, оскільки вони мають корінь внизу, а не вгорі!

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

До речі, остання цитата в роботі - це документ, який Віндлі співавтором з Тоні Роуланд Джонсом та "LF Kay", що є помилкою для мого батька Л.Р. у Великобританії.

Лист Conway BL до "Комп'ютерного журналу", що коментує цей документ, та відповідь від Windley, розділений між сторінками 174 та 184 наступного випуску:

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


3

Обчислення лямбда відноситься до 1930-х років. Його граматика - це раннє застосування дерев, зокрема абстрактних синтаксичних дерев. Кожен термін LC - це дерево. Змінні - це листові вузли. І абстракція, і терміни застосування складаються з інших термінів, тому вони є нелистовими вузлами.

Я не знаю, коли терміни ЖК вперше розглядалися як дерева. Однак ранні докази, що стосуються ЛК, вимагали аналізу випадку, як і те, що зараз роблять програмісти, які пишуть програми для проходження AST.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.