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].
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].
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].
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.”
“Faz muitas coisas pela metade e é só um amontoado de ideias mutuamente excludentes.”
Linha do tempo
-
1943
Nasce em Nova Orleans
-
1965
Forma-se em Berkeley
-
1966
Faz o mestrado e entra no Bell Labs
-
1970
O sistema criado no PDP-7 ganha o nome Unix
-
1971
Escreve um programa de xadrez para a primeira versão do Unix
-
1975
Sabático em Berkeley, onde instala o Unix versão 6
-
1980
Eleito para a National Academy of Engineering
-
1983
Prêmio Turing com Dennis Ritchie
-
1992
Cria o UTF-8 com Rob Pike
-
1999
Recebe a Medalha Nacional de Tecnologia
-
2000
Aposenta-se do Bell Labs
-
2006
Passa a trabalhar no Go
-
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
- Bell Labs Onde Thompson criou o Unix
- Google (Alphabet) Onde trabalhou na linguagem Go
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?+
Ken Thompson criou a linguagem C?+
O que Thompson tem a ver com o UTF-8?+
O que é o Thompson hack?+
Referências
Fontes consultadas
- 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.