Dijkstra, um pioneiro em todas as áreas

Edsger Wybe Dijkstra foi um importante pesquisador na área da Ciência da Computação, mais conhecido pelo algoritmo que leva o seu nome e que calcula o caminho mais curto entre dois vértices em um grafo. Além disso, Dijsktra foi pioneiro em diversas setores da Computação, criando novas áreas de pesquisa e identificando e nomeando problemas novos.

Foto de Edsger Dijkstra.
Foto de Edsger Dijkstra.

Dijkstra (pronúncia similar a “deistra”) nasceu em 1930 em Roterdã, na Holanda [1]. Apesar de inicialmente pensar em estudar Direito, ele acabou decidindo cursar Física Teórica na Universidade Leiden [2].

Apesar de seu gosto pela física, Dijkstra estudava matemática e computação em paralelo, e em 1952 o diretor do Departamento de Computação do Centrum Wiskunde & Informatica (CWI), de Amsterdã, o contratou como programador [3]. Nessa época, Dijkstra se casou com Maria Debets e nos documentos do casamento colocou “programador” como sua profissão, o que não foi aceito pelas autoridades, já que essa ainda não era uma profissão reconhecida na época. Em 1959, Dijkstra conseguiu seu doutorado em Ciência da Computação pela Universidade de Amsterdam [4].

Edsger Dijkstra, B.J. Loopstra e Maria Debets em Amsterdam.
Edsger Dijkstra, B.J. Loopstra e Maria Debets em Amsterdam.

Alguns anos mais tarde, em 1962, Dijkstra deixou seu emprego de programador e se mudou para Eindhoven [5], no sul da Holanda, para dar aulas no Departamento de Matemática da Universidade Tecnológica de Eindhoven. Nessa nova função, Dijkstra era professor de matemática, o que resultou em problemas em sua adaptação, já que a universidade não tinha um departamento ou mesmo um grupo voltado à Ciência da Computação. Assim, ele criou um grupo de estudos voltado à sua área de interesse na Universidade Tecnológica de Eindhoven, que atualmente possui um dos melhores cursos de Computação do mundo.

Em 1973, Dijkstra tornou-se pesquisador da Burroughs Corporation, na época uma das maiores empresas de informática. Nela, trabalhou remotamente de casa com arquitetura de computadores, visitando ocasionalmente as filiais da empresa, principalmente em Austin, Texas, nos Estados Unidos [6]. Isso o aproximou da Universidade do Texas [7], que em 1984 o nomeou para a cadeira centenária Schlumberger do Departamento de Ciência da Computação, um dos maiores cargos da instituição. Dikstra trabalhou na Universidade do Texas até se aposentar em 1999.

Dikstra dando aula durante uma conferência em Zurich.
Dikstra dando aula durante uma conferência em Zurich.

Após sua aposentadoria, Dijkstra voltou para a Holanda, morando em Nuenen [8] até o final de sua vida. Dijkstra morreu em 2002 depois de uma difícil luta contra o câncer. Ele deixou diversos manuscritos, todos escritos à mão ou com máquina de escrever. Apesar de trabalhar com computação, evitou por anos ter um computador pessoal, utilizando um somente com a popularização da internet. Infelizmente, nenhum de seus manuscritos está aberto ao público em museus. O pesquisador Edgar Graham Daylight possui muitos desses documentos [9] e é possível obter a transcrição de grande parte deles online na página da Universidade do Texas, incluindo sua tese de doutorado e áudios de algumas de suas aulas e entrevistas [10].

Dentre suas contribuições, podemos citar diversas áreas da computação, sendo ele pioneiro em muitas delas. Em 1958, fez parte do time que gerou o primeiro compilador para a linguagem ALGOL; no ano seguinte, publicaria seu artigo de somente 3 páginas descrevendo sua contribuição mais famosa, o algoritmo para encontrar o caminho mínimo em um grafo. Na década de 60, aprimorou o algoritmo de Prim para minimizar o número de fios necessários para conectar os pinos de uma máquina e criou o algoritmo Shunting-Yard para produzir uma expressão aritmética em notação polonesa reversa, dada uma expressão em notação infixa. Ainda na mesma década, ele propôs o mecanismo de semáforos utilizados para exclusão mútua e identificou o problema do deadlock, propondo o algoritmo do banqueiro para preveni-lo. Dijkstra também introduziu os conceitos de mutador e coletor para Garbage Collector e criou o algoritmo Dijkstra–Scholten para sistemas distribuídos. Por todas essas contribuições, Dijkstra recebeu o Prêmio Turing em 1972, condecoração de maior prestígio no mundo da informática.

Uma brincadeira com o algoritmo de Dikstra.
Uma brincadeira com o algoritmo de Dikstra.

Ao trabalhar com códigos de máquina, na década de 50, Dijkstra chegou à conclusão de que linguagens de alto nível não deveriam utilizar o comando GOTO, escrevendo carta a respeito em 1968 [11].

Visite:

[1] Roterdã é uma cidade holandesa de arquitetura moderna e onde se localiza o maior porto marítimo europeu.
[2] Leiden é uma cidade holandesa basicamente universitária, onde se localiza a Universidade de Leiden, um dos maiores centros tecnológicos da Europa.
[3] Amsterdã é a capital da Holanda e conhecida por seus diversos canais que atualmente são considerados Patrimônio Mundial pela UNESCO.
[4] A Universidade de Amsterdã é um dos maiores centros de pesquisa europeus e onde se localiza o Museu do Computador, que possui exibições sobre como os computadores funcionavam antigamente e como os cálculos eram feitos antes da invenção do computador eletrônico.
[5] Eindhoven é uma cidade holandesa conhecida como a Capital do Design e sedia dezenas de museus e estúdios sobre o tema. Lá é organizada anualmente a Semana de Design Holandês (DDW).
[6] Austin é a capital do estado americano do Texas e a segunda cidade mais populosa do país, onde se localiza o “Monte do Silício”, segundo lugar dos Estados Unidos a centralizar o maior número de empresas de tecnologia.
[7] A Universidade do Texas em Austin é uma das maiores do mundo, com 7 museus, 17 bibliotecas e mais de 50 mil estudantes.
[8] Nuenen é um pequeno município no sul da Holanda, com pouco mais de 20 mil habitantes, onde Van Gogh morou por alguns anos no início de sua carreira.
[9] Dijkstra’s Rallying Cry for Generalization.
[10] E. W. Dijkstra Archive.
[11] A Case Against the GOTO Statement.

Karina Mochetti
Sobre Karina Mochetti 4 Articles
Possuo graduação em Engenharia da Computação e Mestrado e Doutorado em Ciência da Computação, todos pela UNICAMP. Atualmente sou Professora Adjunta da Universidade Federal Fluminense (UFF) e uma das coordenadoras do Projeto #include , um grupo para motivar mulheres na área de TI. Também sou uma das editoras da revista SBC Horizontes.