Brian Kernighan: biografia, Bell Labs, Unix, The C Programming Language, AWK, AMPL, “Hello, world!”, livros e Princeton | Ícones da Tecnologia

Dossiê · Linguagens de programação

Brian Kernighan: o “K” do K&R e do AWK, que escreveu o primeiro “Hello, world!”

Quase todo curso de programação começa com um programa que escreve “Hello, world!” na tela. O primeiro registro documentado desse exemplo está num tutorial de 1972 escrito por Brian Kernighan, o pesquisador canadense do Bell Labs que ajudou a espalhar o Unix e a linguagem C pelo mundo com seus livros.

Atualizado em · 1 fontes públicas citadas

Brian Kernighan nunca reivindicou ter criado a linguagem C. Segundo a Wikipédia, ele afirma que não teve participação no desenho da linguagem. Mesmo assim, seu nome ficou ligado a ela para sempre: o “K” de K&R, como é conhecido o livro The C Programming Language, escrito com Dennis Ritchie, é a inicial de Kernighan.[1]

Ele trabalhou no Bell Labs ao lado dos criadores do Unix, coassinou as linguagens AWK e AMPL, escreveu ou coescreveu mais de uma dúzia de livros e, desde 2000, ensina computação em Princeton, inclusive para quem não é da área.[1]

Formação em Toronto e Princeton

Kernighan nasceu em 30 de janeiro de 1942 em Toronto, no Canadá. Estudou na Universidade de Toronto entre 1960 e 1964 e se formou em física de engenharia.[1]

Fez doutorado em engenharia elétrica em Princeton, concluído em 1969, com a tese “Some Graph Partitioning Problems Related to Program Segmentation”, orientada por Peter G. Weiner.[1]

Bell Labs e o Unix

No Bell Labs, Kernighan contribuiu para o desenvolvimento do Unix ao lado de seus criadores, Ken Thompson e Dennis Ritchie. A Wikipédia não informa o ano em que ele entrou no laboratório.[1]

Segundo o artigo, foi Kernighan quem cunhou o nome “Unix”, e ele ajudou a popularizar a filosofia Unix de Thompson. Escreveu vários programas do sistema, entre eles o ditroff.[1]

Com Shen Lin, criou heurísticas conhecidas para dois problemas de otimização NP-completos. A de partição de grafos ficou conhecida como algoritmo Kernighan–Lin; a do problema do caixeiro-viajante, como heurística Lin–Kernighan.[1]

Brian Kernighan: idade em cada marco

Idade em cada marco, calculada a partir da data de nascimento (30 de janeiro de 1942) e dos anos citados na Wikipédia.

Para 1964 o artigo dá só o ano em que ele deixou Toronto, então essa idade pode variar em um ano.

O primeiro “Hello, world!”

Em 1972, no texto “A Tutorial Introduction to the Language B”, Kernighan usou as palavras “hello” e “world” para explicar o tratamento de strings na linguagem B. É o primeiro “Hello, world!” documentado, e o exemplo virou um rito de passagem para quem aprende a programar.[1]

Uma implementação do programa feita por ele em 1978 foi vendida no The Algorithm Auction, um dos primeiros leilões de algoritmos de computador. A Wikipédia não informa o valor nem o ano da venda.[1]

Os livros: do K&R ao Go

O nome de Kernighan ficou conhecido no mundo todo pela coautoria do primeiro livro sobre a linguagem C, The C Programming Language (1978, com segunda edição em 1988), escrito com Dennis Ritchie.[1]

Antes disso, com P. J. Plauger, publicou The Elements of Programming Style (1974, revisado em 1978) e Software Tools (1976). A série Software Tools, segundo a Wikipédia, espalhou a essência do “pensamento C/Unix”. A versão Software Tools in Pascal saiu em 1981.[1]

Com Rob Pike escreveu The Unix Programming Environment (1984) e The Practice of Programming (1999). Com Alfred Aho e Peter J. Weinberger, The AWK Programming Language (1988, com nova edição em 2023). Com Robert Fourer e David Gay, AMPL: A Modeling Language for Mathematical Programming (segunda edição em 2003). Com Alan Donovan, The Go Programming Language (2015).[1]

Sozinho, escreveu livros para o público geral: D is for Digital (2011), Understanding the Digital World (2017), Millions, Billions, Zillions: Defending Yourself in a World of Too Many Numbers (2018) e UNIX: A History and a Memoir (2019).[1]

Kernighan também foi editor de software da Prentice Hall International.[1]

AWK e AMPL

Kernighan é coautor de duas linguagens. No nome AWK, o “K” é de Kernighan, assim como no K&R. A AMPL, linguagem de modelagem para programação matemática, aparece na linha do tempo da Wikipédia em 1985.[1]

Em 2022, ele disse que trabalhava ativamente em melhorias da AWK.[1]

Professor em Harvard e Princeton

Em 1996, Kernighan deu o CS50, a disciplina introdutória de computação de Harvard. Segundo a Wikipédia, ele influenciou David J. Malan, que depois assumiu o curso e o levou a várias universidades e a formatos digitais.[1]

Desde 2000 é professor de ciência da computação em Princeton. Todo outono ministra “Computers in Our World”, disciplina para alunos de fora da área.[1]

Ele também é lembrado pela expressão “What You See Is All You Get” (o que você vê é tudo o que você tem), uma provocação aos editores WYSIWYG.[1]

Honrarias

Kernighan foi eleito para a Academia Nacional de Engenharia dos EUA em 2002 e para a Academia Americana de Artes e Ciências em 2019.[1]

Linha do tempo

  1. 1942

    Nasce em Toronto, em 30 de janeiro.

  2. 1964

    Conclui física de engenharia na Universidade de Toronto.

  3. 1969

    Doutorado em engenharia elétrica em Princeton.

  4. 1972

    Primeiro “Hello, world!” documentado, no tutorial da linguagem B.

  5. 1974

    The Elements of Programming Style, com P. J. Plauger.

  6. 1978

    The C Programming Language, com Dennis Ritchie.

  7. 1984

    The Unix Programming Environment, com Rob Pike.

  8. 1985

    Linguagem AMPL.

  9. 1988

    The AWK Programming Language e segunda edição do K&R.

  10. 1996

    Dá o CS50 em Harvard.

  11. 1999

    The Practice of Programming, com Rob Pike.

  12. 2000

    Torna-se professor em Princeton.

  13. 2002

    Eleito para a Academia Nacional de Engenharia dos EUA.

  14. 2015

    The Go Programming Language, com Alan Donovan.

  15. 2019

    UNIX: A History and a Memoir; eleito para a Academia Americana de Artes e Ciências.

  16. 2023

    Nova edição de The AWK Programming Language.

Empresas ligadas a Brian Kernighan

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 Brian Kernighan no grafo 3D

  • Bell Labs Laboratório onde Kernighan contribuiu para o Unix

Veja também: outras pessoas

  • Dennis Ritchie Coautor de The C Programming Language (1978)
  • Ken Thompson Criador do Unix, com quem Kernighan trabalhou no Bell Labs
  • Bill Joy Escreveu o cat -v, que Kernighan e Rob Pike criticaram por ir contra a filosofia Unix.

Sumário de siglas usadas

K&R
Apelido do livro The C Programming Language, pelas iniciais de Kernighan e Ritchie.
AWK
Linguagem de programação da qual Kernighan é coautor; o “K” do nome é dele.
AMPL
A Mathematical Programming Language, linguagem de modelagem para otimização.
WYSIWYG
“What you see is what you get”: editor que mostra na tela o resultado final.
NP-completo
Classe de problemas para os quais não se conhece algoritmo eficiente que dê sempre a solução ótima.
CS50
Disciplina introdutória de ciência da computação da Universidade Harvard.

Perguntas frequentes

Quem é Brian Kernighan?+
Um cientista da computação canadense, ex-pesquisador do Bell Labs e professor de Princeton desde 2000, coautor do livro The C Programming Language e das linguagens AWK e AMPL.
Brian Kernighan criou a linguagem C?+
Não. A C foi criada por Dennis Ritchie, e Kernighan afirma que não participou do desenho da linguagem. Ele é coautor do primeiro livro sobre ela.
Quem escreveu o primeiro “Hello, world!”?+
O primeiro registro documentado está no tutorial “A Tutorial Introduction to the Language B”, escrito por Kernighan em 1972.
O que significa o K de AWK?+
Kernighan, segundo a Wikipédia. Ele é coautor da linguagem e, com Alfred Aho e Peter Weinberger, do livro sobre ela.
Quais livros Brian Kernighan escreveu?+
Entre outros, The C Programming Language, The Unix Programming Environment, The AWK Programming Language, The Practice of Programming, The Go Programming Language e UNIX: A History and a Memoir.
Ele ainda dá aulas?+
Sim. Segundo a Wikipédia, ele ministra todo outono em Princeton a disciplina “Computers in Our World”, voltada a alunos de fora da computação.

Referências

Fontes consultadas

  1. Brian Kernighan · 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

Brian Kernighan não criou o Unix nem a linguagem C, mas ajudou a explicá-los para o mundo. Do primeiro “Hello, world!” documentado ao K&R, da AWK aos livros para leigos, ele ajudou gerações a aprender a programar, e ainda ensina em Princeton.