Ken Thompson: biografia, Unix, a linguagem B, expressões regulares, o UTF-8, o Belle, o Plan 9, o Go e o Prêmio Turing | Ícones da Tecnologia

Dossiê · Pioneiros da computação

Ken Thompson: o programador do Bell Labs que criou o Unix, a linguagem B, o UTF-8 e ajudou a criar o Go

Quando o Bell Labs saiu do projeto Multics, Ken Thompson reescreveu um jogo que tinha criado, o Space Travel, num velho computador PDP-7. As ferramentas que ele e Dennis Ritchie criaram ali viraram o Unix. Décadas depois, o mesmo Thompson ajudou a criar o UTF-8, a codificação de texto de mais de 90% das páginas da Web, e a linguagem Go.

Atualizado em · 1 fontes públicas citadas

Kenneth Lane Thompson, nascido em 4 de fevereiro de 1943 em Nova Orleans, é um pioneiro americano da ciência da computação [1]. Passou a maior parte da carreira no Bell Labs, onde criou o Unix com Dennis Ritchie [1].

Também criou a linguagem B, precursora do C, criou o UTF-8 com Rob Pike e foi um dos criadores da linguagem Go [1]. Este dossiê reúne apenas informações públicas e com fonte, listadas ao final.

Lógica desde a escola

Thompson contou que sempre foi fascinado por lógica e que já fazia aritmética binária no ensino fundamental [1].

Formou-se em engenharia elétrica e ciência da computação na Universidade da Califórnia em Berkeley em 1965 e fez o mestrado na mesma área em 1966, com orientação de Elwyn Berlekamp [1]. No mesmo ano, foi contratado pelo Bell Labs [1].

Do Multics ao Space Travel

Nos anos 1960, Thompson trabalhou com Dennis Ritchie no sistema operacional Multics e, nesse período, criou a linguagem Bon [1].

Ele também escreveu o jogo Space Travel. Quando o Bell Labs saiu do projeto Multics, reescreveu o jogo num PDP-7 antigo [1].

Ken Thompson: idade em cada marco

Idade aproximada em cada marco, calculada a partir do ano de nascimento (1943) e dos anos citados na Wikipédia.

Cálculo nosso: ano do marco menos 1943.

O nascimento do Unix

As ferramentas desse trabalho viraram o Unix. Uma equipe liderada por Thompson e Ritchie, com Rudd Canaday, criou no PDP-7 um sistema de arquivos hierárquico, processos, arquivos de dispositivo, um interpretador de comandos, pipes e pequenos utilitários [1].

Em 1970, Brian Kernighan sugeriu o nome Unix, um trocadilho com Multics [1]. Thompson resumiu assim o começo, em tradução livre: “Fiz sozinho a primeira de duas ou três versões do UNIX” [1].

Doug McIlroy escreveu que se pode presumir que os nomes de Ritchie e Thompson estão ligados a quase tudo que não tenha outra autoria declarada [1].

A linguagem B e o caminho para o C

Thompson concluiu que o Unix precisava de uma linguagem de programação de sistemas e criou a B, precursora do C, de Ritchie [1]. Sobre o C, disse que a linguagem “cresceu junto com uma das reescritas do sistema”, em tradução livre [1].

Expressões regulares, QED e ed

Thompson desenvolveu a versão do editor QED para o sistema CTSS, que incluía expressões regulares para buscar texto [1]. Depois escreveu o ed, o editor de texto padrão do Unix [1].

Ele inventou o algoritmo conhecido como construção de Thompson, que converte expressões regulares em autômatos finitos não determinísticos. Segundo o artigo, quase todos os programas que usam expressões regulares adotam alguma variante da notação dele [1].

Sabático em Berkeley

Em 1975, Thompson tirou um sabático em Berkeley e ajudou a instalar o Unix versão 6 num PDP-11/70 [1]. No início de 1976, escreveu a primeira versão do Berkeley Pascal [1].

Belle e o xadrez por computador

Thompson escreveu um programa de xadrez, chamado simplesmente chess, para a primeira versão do Unix, em 1971 [1]. Com Joseph Condon, criou o Belle, máquina de xadrez com hardware dedicado que foi campeã mundial entre computadores [1].

Também escreveu programas que enumeraram todas as tabelas de finais com 4, 5 e 6 peças, e distribuiu os primeiros resultados em CD-ROM com o especialista John Roycroft [1]. Em 2001, o ICGA Journal dedicou quase uma edição inteira ao trabalho dele, e em 2004 ele ajudou a implementar o Turochamp, programa de xadrez de Alan Turing de 1948 [1].

UTF-8, Plan 9 e Inferno

Em 1992, Thompson criou com Rob Pike a codificação de texto UTF-8 [1]. Em 2019, ela era usada por mais de 90% das páginas da Web [1].

Em meados dos anos 1980, ele foi peça-chave no projeto do Plan 9 from Bell Labs, que levava os princípios do Unix mais longe, e nos anos 1990 trabalhou com Ritchie e outros no sistema Inferno [1]. Thompson se aposentou do Bell Labs no fim de 2000 [1].

C++, Go e o Google

Thompson testou as primeiras versões do C++ para Bjarne Stroustrup, mas depois se recusou a trabalhar com a linguagem. Em 2009, a chamou de “um amontoado de ideias mutuamente excludentes”, em tradução livre [1].

Depois de passar pela Entrisphere até 2006, passou a trabalhar no Go, linguagem que ajudou a criar; a ficha do artigo lista o Google entre as instituições dele [1]. Thompson, Pike e Robert Griesemer disseram que decidiram que “odiavam C++”, em tradução livre [1].

O Prêmio Turing e “Reflections on Trusting Trust”

Em 1983, Thompson e Ritchie receberam o Prêmio Turing pela implementação do sistema operacional Unix [1].

O discurso de aceitação, “Reflections on Trusting Trust”, publicado na Communications of the ACM em 1984, descreveu um ataque em que um compilador adulterado insere uma porta dos fundos nos programas, conhecido como Thompson hack [1]. Em 2023, o código anotado desse ataque foi publicado na internet [1].

Outras honrarias

Thompson foi eleito para a National Academy of Engineering em 1980, por projetar o UNIX, e para a National Academy of Sciences em 1985 [1]. Com Ritchie, recebeu a Medalha Hamming do IEEE em 1990, tornou-se Fellow do Computer History Museum em 1997 e recebeu a Medalha Nacional de Tecnologia de 1998, entregue pelo presidente Bill Clinton em 27 de abril de 1999 [1].

Em 1999, ganhou o primeiro Tsutomu Kanai Award do IEEE e, em 2011, o Japan Prize de Informação e Comunicação, também com Ritchie [1].

Frases e declarações públicas

“Fiz sozinho a primeira de duas ou três versões do UNIX.”

Entrevista de 2011 (tradução livre).

“Faz muitas coisas pela metade e é só um amontoado de ideias mutuamente excludentes.”

Sobre o C++, em entrevista de 2009 (tradução livre).

Linha do tempo

  1. 1943

    Nasce em Nova Orleans

  2. 1965

    Forma-se em Berkeley

  3. 1966

    Faz o mestrado e entra no Bell Labs

  4. 1970

    O sistema criado no PDP-7 ganha o nome Unix

  5. 1971

    Escreve um programa de xadrez para a primeira versão do Unix

  6. 1975

    Sabático em Berkeley, onde instala o Unix versão 6

  7. 1980

    Eleito para a National Academy of Engineering

  8. 1983

    Prêmio Turing com Dennis Ritchie

  9. 1992

    Cria o UTF-8 com Rob Pike

  10. 1999

    Recebe a Medalha Nacional de Tecnologia

  11. 2000

    Aposenta-se do Bell Labs

  12. 2006

    Passa a trabalhar no Go

  13. 2011

    Japan Prize com Dennis Ritchie

Empresas ligadas a Ken Thompson

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 Ken Thompson no grafo 3D

Veja também: outras pessoas

  • Dennis Ritchie Parceiro na criação do Unix e criador do C
  • Brian Kernighan Sugeriu o nome Unix em 1970
  • Bjarne Stroustrup Criador do C++, linguagem que Thompson testou e depois criticou
  • Alan Turing Autor do Turochamp, que Thompson ajudou a implementar em 2004
  • Bill Joy Começou em Berkeley trabalhando num compilador Pascal deixado por Thompson.

Sumário de siglas usadas

Unix
Sistema operacional criado no Bell Labs por Thompson, Ritchie e equipe.
UTF-8
Codificação de caracteres Unicode criada por Thompson e Rob Pike em 1992.
PDP-7
Computador antigo em que Thompson reescreveu o Space Travel e onde nasceu o Unix.
Expressão regular
Padrão de texto usado para buscar e substituir trechos em programas.

Perguntas frequentes

Quem criou o Unix?+
Uma equipe do Bell Labs liderada por Ken Thompson e Dennis Ritchie, num PDP-7. O nome foi sugerido por Brian Kernighan em 1970.
Ken Thompson criou a linguagem C?+
Não. Ele criou a linguagem B, precursora do C, que foi criado por Dennis Ritchie.
O que Thompson tem a ver com o UTF-8?+
Ele criou o UTF-8 com Rob Pike em 1992.
O que é o Thompson hack?+
Um ataque descrito no discurso do Prêmio Turing, em que um compilador adulterado insere uma porta dos fundos nos programas que compila.

Referências

Fontes consultadas

  1. Ken Thompson · 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

Ken Thompson começou reescrevendo um jogo num computador velho e terminou com o Unix, a linguagem B, as expressões regulares do ed, o UTF-8 e o Go no currículo. Ao lado de Dennis Ritchie, recebeu as principais honrarias da computação, e o discurso do Prêmio Turing deu nome a um ataque estudado até hoje, o Thompson hack.