Edsger W. Dijkstra: biografia, o algoritmo de Dijkstra, o compilador ALGOL 60, os semáforos, “Go To Statement Considered Harmful” e os manuscritos EWD | Ícones da Tecnologia

Dossiê · Pioneiros da computação

Edsger Dijkstra: o primeiro programador da Holanda, criador do algoritmo do caminho mais curto

Em 1957, ao se casar, Edsger Dijkstra declarou como profissão “programador”, e as autoridades holandesas não reconheceram o ofício. Cinco anos antes, ele tinha se tornado o primeiro programador oficial do país. O algoritmo que ele bolou em 1956 para uma demonstração de computador ainda hoje calcula rotas em protocolos da internet.

Atualizado em · 1 fontes públicas citadas

Edsger Wybe Dijkstra (1930–2002) foi um cientista da computação, programador, matemático e ensaísta holandês [1]. Ele criou o algoritmo do caminho mais curto que leva seu nome, desenvolveu o primeiro compilador de ALGOL 60 e foi um dos maiores defensores da programação estruturada [1].

Recebeu o Prêmio Turing de 1972 e deixou mais de 1.300 textos, muitos escritos à mão [1]. Este dossiê reúne apenas informações públicas e com fonte, listadas ao final.

Roterdã e Leiden

Dijkstra nasceu em Roterdã em 11 de maio de 1930. O pai era químico e professor de química no ensino médio, e a mãe era matemática [1].

Ele chegou a pensar em direito e em representar os Países Baixos na ONU, mas os pais sugeriram matemática e física [1]. Depois de se formar no Gymnasium Erasmianum em 1948, estudou matemática e física, e depois física teórica, na Universidade de Leiden [1].

O primeiro programador da Holanda

Dijkstra entrou na computação quase por acaso, no início dos anos 1950, quando o orientador Johannes Haantjes o apresentou a Adriaan van Wijngaarden, diretor do Departamento de Computação do Mathematisch Centrum, em Amsterdã, que lhe ofereceu um emprego [1].

Em março de 1952, tornou-se oficialmente o primeiro “programador” dos Países Baixos [1]. Por um tempo, dividia a semana entre a física em Leiden, três dias, e a programação [1]. Mais tarde escreveu que aquilo foi uma virada na vida dele e que terminou o curso de física o mais rápido que pôde [1].

Ele trabalhou no Mathematisch Centrum de 1952 a 1962, com Bram Jan Loopstra e Carel S. Scholten [1]. O método da equipe era escrever primeiro o manual de programação e depois o software para uma máquina que ainda não existia [1]. Dessa experiência ele tirou duas lições: documentação clara importa, e boa parte da depuração pode ser evitada com um projeto cuidadoso [1].

Edsger Dijkstra: idade em cada marco

Idade aproximada em cada marco, calculada a partir da data de nascimento (11 de maio de 1930).

Cálculo nosso a partir das datas da Wikipédia; alguns valores podem variar em um ano.

O algoritmo do caminho mais curto

Em 1956, Dijkstra formulou e resolveu o problema do caminho mais curto para uma demonstração na inauguração oficial do computador ARMAC [1].

Só publicou o resultado em 1959, porque não havia revistas dedicadas à computação automática, no artigo “A Note on Two Problems in Connexion with Graphs” [1]. O algoritmo é muito ensinado e é usado nos protocolos de roteamento OSPF e IS-IS [1].

No mesmo ano de 1959, ele defendeu o doutorado na Universidade de Amsterdã, com a tese “Communication with an Automatic Computer”, sobre a linguagem assembly do Electrologica X1, o primeiro computador comercial desenvolvido nos Países Baixos [1].

O primeiro compilador ALGOL 60

Com Jaap Zonneveld, Dijkstra desenvolveu o primeiro compilador da linguagem ALGOL 60, pronto em agosto de 1960, mais de um ano antes de outro grupo fazer o seu [1]. Em 1962, publicou “A Primer of ALGOL 60 Programming” [1].

Eindhoven, THE e semáforos

Em 1962, Dijkstra se mudou para Eindhoven como professor do Departamento de Matemática da Technische Hogeschool Eindhoven, onde formou um grupo de cientistas da computação [1]. Depois da mudança, passou mais de um ano com bloqueio de escrita, e só então começou a série de textos EWD [1].

No fim dos anos 1960, construiu o sistema operacional THE, um dos primeiros com projeto em camadas, descrito na Communications of the ACM em maio de 1968 [1].

Entre suas contribuições mais importantes está o semáforo, mecanismo para coordenar vários processos, apresentado em “Cooperating Sequential Processes” (1965) [1]. Ele também formulou a autoestabilização, um método de tolerância a falhas em computação distribuída [1].

“Go To Statement Considered Harmful”

Em 1968, Dijkstra enviou à Communications of the ACM a carta “Go To statement considered harmful”, que provocou um grande debate [1].

A programação estruturada, que usa estruturas de controle em vez de saltos como o goto, é hoje seguida pela maioria dos programadores [1]. Em abril de 1970, ele escreveu “Notes on Structured Programming” (EWD249) [1].

Burroughs e o Tuesday Afternoon Club

Em agosto de 1973, Dijkstra virou o único pesquisador-sênior (research fellow) da Burroughs Corporation, trabalhando principalmente do escritório em casa, em Nuenen, e reduziu a universidade a um dia por semana [1].

Às terças-feiras, comandava o “Tuesday Afternoon Club”, seminário que revisava artigos científicos [1]. Nos anos de Burroughs, escreveu quase 500 textos da série EWD [1].

Austin e os manuscritos EWD

Em 1984, aceitou a cátedra Schlumberger Centennial no Departamento de Ciência da Computação da Universidade do Texas em Austin, onde se aposentou em novembro de 1999 [1].

Dijkstra escreveu mais de 1.300 textos, muitos à mão e distribuídos por fotocópia [1]. Quase todos os EWDs depois de 1972 foram manuscritos, raramente passavam de 15 páginas e eram numerados em sequência; o último, de número 1318, é de 14 de abril de 2002 [1].

Prêmios e morte

Em 1972, Dijkstra recebeu o Prêmio Turing por contribuições fundamentais ao desenvolvimento de linguagens de programação estruturada [1]. Também foi eleito para a Academia Real de Ciências dos Países Baixos em 1971 e tornou-se Fellow da ACM em 1994 [1].

Em 2002, recebeu o diagnóstico de câncer, voltou para os Países Baixos e morreu em Nuenen em 6 de agosto daquele ano, aos 72 anos [1]. Pouco antes, tinha recebido o prêmio de artigo influente da conferência PODC, pelo trabalho em autoestabilização; no ano seguinte, o prêmio passou a se chamar Prêmio Dijkstra [1].

Frases e declarações públicas

“Faça apenas o que só você pode fazer.”

Conselho sobre a escolha de temas de pesquisa (tradução livre).

“A questão de saber se máquinas podem pensar é tão relevante quanto a de saber se submarinos podem nadar.”

Frase citada na Wikipédia (tradução livre).

Linha do tempo

  1. 1930

    Nasce em Roterdã

  2. 1948

    Forma-se no Gymnasium Erasmianum e entra em Leiden

  3. 1952

    Torna-se o primeiro programador oficial dos Países Baixos

  4. 1956

    Cria o algoritmo do caminho mais curto para a demonstração do ARMAC

  5. 1959

    Publica o algoritmo e defende o doutorado em Amsterdã

  6. 1960

    Conclui o primeiro compilador ALGOL 60, com Jaap Zonneveld

  7. 1962

    Torna-se professor em Eindhoven

  8. 1965

    Escreve Cooperating Sequential Processes, com os semáforos

  9. 1968

    Publica o sistema THE e a carta contra o goto

  10. 1972

    Recebe o Prêmio Turing

  11. 1973

    Vira pesquisador da Burroughs

  12. 1984

    Vai para a Universidade do Texas em Austin

  13. 1999

    Aposenta-se

  14. 2002

    Morre em Nuenen, aos 72 anos

Empresas ligadas a Edsger Dijkstra

Empresas desta coleção em que a pessoa trabalhou, fundou, investiu ou com que teve relação direta. Os nomes com link já têm dossiê publicado.

Ver a rede de Edsger Dijkstra no grafo 3D

Veja também: outras pessoas

  • Alan Turing Dá nome ao prêmio que Dijkstra recebeu em 1972
  • Donald Knuth Outro vencedor do Prêmio Turing nos anos 1970

Sumário de siglas usadas

EWD
Série de textos de Dijkstra, numerados em sequência e identificados pelas iniciais dele.
ALGOL 60
Linguagem de programação de 1960, considerada um avanço rumo à programação estruturada.
Semáforo
Mecanismo para coordenar o acesso de vários processos a recursos compartilhados.
OSPF e IS-IS
Protocolos de roteamento de redes que usam o algoritmo de Dijkstra.
Goto
Comando de salto incondicional criticado por Dijkstra em 1968.

Perguntas frequentes

Quem foi Edsger Dijkstra?+
Um cientista da computação holandês, criador do algoritmo do caminho mais curto e defensor da programação estruturada, Prêmio Turing de 1972.
Como surgiu o algoritmo de Dijkstra?+
Ele o formulou em 1956 para uma demonstração na inauguração do computador ARMAC e o publicou em 1959.
O que dizia a carta sobre o goto?+
Que o comando goto era prejudicial. A carta de 1968 na Communications of the ACM provocou um grande debate.
O que são os EWDs?+
Os mais de 1.300 textos de Dijkstra, muitos manuscritos e numerados em sequência; o último, o 1318, é de abril de 2002.

Referências

Livros

A Primer of ALGOL 60 Programming (1962)

Livro de Dijkstra sobre a linguagem ALGOL 60.

Fontes consultadas

  1. Edsger W. Dijkstra · Wikipédia

Este dossiê usa apenas informações públicas e com fonte. Não publicamos dados pessoais privados, como endereço, documentos ou informações de saúde. Encontrou um erro? Escreva para [email protected].

Conclusão

Edsger Dijkstra foi programador quando a profissão nem era reconhecida e ensinou que bons programas nascem de projeto cuidadoso, não de depuração. O algoritmo do caminho mais curto, os semáforos e a defesa da programação estruturada continuam no dia a dia de quem programa, e os mais de 1.300 textos EWD registram o pensamento dele por décadas.