Qual é o primeiro uso de "árvores" na ciência da computação?

18

Eu tenho uma pequena questão histórica, a saber, como o título diz, estou procurando usos iniciais de árvores (como estrutura de dados, árvore de pesquisa, o que for) na ciência da computação.

john_leo
fonte
2
Provavelmente existe um uso anterior do termo no contexto da teoria dos grafos.
Juho
Provavelmente desde o começo . Oh, você quer dizer esse tipo de árvore.
200_success

Respostas:

13

A Wikipedia diz que o primeiro uso da árvore em matemática foi por Cayley em 1857.

Como o uso em ciência da computação é retirado diretamente da matemática, parece mais fundamental perguntar quando eles se originaram lá. A menos que os cientistas da computação tenham chamado as árvores de outra coisa, o primeiro cientista da computação a usar "árvore" não parece mais significativo do que, digamos, o primeiro australiano a usar a "árvore".

David Richerby
fonte
Cayley provavelmente cunhou a palavra "árvore", mas as árvores já foram usadas anteriormente (por exemplo, por Kirchhoff). No século 19, os matemáticos realmente não se preocupavam com algoritmos (algumas exceções aqui). Definitivamente, as árvores não foram usadas como estrutura de dados, como uma árvore de pesquisa nesses trabalhos.
A.Schulz
11

De acordo com TAOCP de Donald Knuth, vol. 1, pág. 459 os seguintes artigos podem ser considerados como uma das primeiras aparições de árvores no CS.

  • HG Kahrimanian, Diferenciação Analítica por Computador Digital , Simpósio de Programação Automática, 6–14, 1952
  • KE Iverson e LR Johnson, relatórios de pesquisa da IBM Corp. RC-390, RC-603 , 1961
  • AJ Perils e C. Thornton, Árvores roscadas , CACM 3, 195–204, 1960

Confira TAOCP para mais informações e mais referências.

A.Schulz
fonte
Obrigado, isso parece muito promissor. A segunda referência tem um título? Não tenho o TAOCP em mãos, irei à biblioteca mais tarde.
22415 John -leo
4
Este é um argumento de autoridade que pode realmente funcionar, dado que Knuth é conhecido por ser um colecionador de referências muito diligente.
Raphael
INVERSON, KE Uma notação de programação para árvores. Relatório de Pesquisa R - 390, II3M Research Center (janeiro de 1961). É daqui: dl.acm.org/citation.cfm?id=366828, que também pode ser uma boa referência.
KWillets
@Raphael Ele literalmente escreveu o livro sobre a ciência da computação, não foi ...
corsiKa
6

Isaías: "" E sairá uma vara da haste de Jessé, e um ramo crescerá das suas raízes "

A árvore como modelo de dados para informações genealógicas é realmente muito antiga.

Michael Kay
fonte
2
"... em ciência da computação ."
Raphael
@Raphael Fair, embora seja discutivelmente uma estrutura de dados, que é tenuamente ciência da computação por outro nome.
David Richerby
3
Tendo em vista a visão de Dijkstra, a ciência da computação trata de estruturas e algoritmos de dados e tem muito pouco a ver com computadores.
Michael Kay
4

Encontrei este artigo no (BCS) Computer Journal de 1960:

PF Windley: Árvores, florestas e reorganização.

Ele introduz o conceito de "árvores", "descrito brevemente por Douglas (1959)" [Sandy Douglas] "e atribuído a Berners-Lee" [Conway Berners-Lee, pai de Tim].

Curiosamente, suas árvores são botanicamente mais precisas do que as árvores CS modernas, na medida em que têm a raiz no fundo e não no topo!

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

Coincidentemente, a última citação no artigo é de um artigo que Windley foi co-autor de Tony Rowland Jones e "LF Kay", que é um erro de impressão para LR Kay, meu pai, que passou a administrar o UCCA, o sistema central de admissões da universidade no Reino Unido.

Uma carta de Conway BL ao Computer Journal comentando este artigo e uma resposta de Windley estão divididas entre as páginas 174 e 184 da seguinte edição:

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

Michael Kay
fonte
3

O cálculo Lambda remonta aos anos 30. Sua gramática é uma aplicação inicial de árvores, especificamente árvores de sintaxe abstrata. Todo termo de LC é uma árvore. Variáveis ​​são os nós das folhas. Os termos de abstração e de aplicação consistem em outros termos, portanto, são nós não-folha.

Não sei quando os termos da LC foram inicialmente considerados árvores. No entanto, as primeiras provas envolvendo LC exigiam análise de caso, bem como o que os programadores que escrevem programas para executar ASTs fazem agora.

Jake Mitchell
fonte