1 pontos por GN⁺ 2024-07-19 | 1 comentários | Compartilhar no WhatsApp
  • Breve entrevista com o Dr. Brian Kernighan, criador do AWK

    • Apresentação do Dr. Brian Kernighan

      • Dr. Brian Kernighan é um cientista da computação canadense que contribuiu para o desenvolvimento do UNIX no Bell Labs
      • Coescreveu com Dennis Richie o livro fundamental sobre a linguagem de programação C, "The C Programming Language"
      • Desde 2000, vem formando a próxima geração de programadores na Princeton University
      • É famoso por ter escrito o primeiro programa "Hello World!"
    • A nova ideia do AWK

      • A principal ideia do AWK são os arrays associativos (associative arrays)
      • Na época, era um conceito novo, mas hoje é usado na maioria das linguagens como função de biblioteca (hashmaps em Java ou C++) ou como parte da própria linguagem (dictionaries em Perl e Python)
      • Arrays associativos são estruturas muito poderosas e podem ser usados para simular vários tipos de estruturas de dados
      • O paradigma pattern-action também não era amplamente usado na época, mas é uma forma eficaz de organizar certos tipos de computação
    • Referências usadas ao criar a linguagem de programação

      • Dr. Kernighan: "Nenhuma"
      • Na década de 1970, havia muitas novas linguagens de propósito específico, e quase não existiam referências anteriores que servissem de base
      • Yacc foi uma ferramenta importante por permitir criar e experimentar gramáticas com facilidade
      • Lex desempenhava o mesmo papel no nível lexical, substituindo muito código tedioso por um conjunto de regras
      • Lex e Yacc são exemplos de linguagens pattern-action e formavam um ciclo positivo entre si
    • Conselho para jovens interessados em design de linguagens de programação

      • Ele aconselha projetar e implementar uma pequena linguagem de propósito específico
      • Isso é muito divertido e útil, além de ser bem mais fácil do que criar uma linguagem alternativa ao Rust ou ao C++
      • Recomenda encontrar uma tarefa que possa ser automatizada e criar um compilador simples com runtime
      • Um artigo relacionado escrito por Jon Bentley há muito tempo ainda continua atual
    • Fonte da imagem

      • Wikimedia Commons

Resumo do GN⁺

  • Dr. Brian Kernighan é uma figura importante que contribuiu para o desenvolvimento do UNIX e da linguagem C, além de ser o criador da linguagem AWK, que introduziu os arrays associativos e o paradigma pattern-action
  • Arrays associativos são estruturas de dados poderosas usadas hoje na maioria das linguagens de programação
  • Para jovens programadores, projetar e implementar uma pequena linguagem de propósito específico pode ser muito proveitoso
  • Yacc e Lex são ferramentas que facilitam a análise gramatical e lexical e são bons exemplos de linguagens pattern-action

1 comentários

 
GN⁺ 2024-07-19
Comentários do Hacker News
  • Brian Kernighan entrou para o departamento de CS de Princeton em 2000, mas já havia dado uma aula em 1993, quando estava no Bell Labs Research
  • Um aluno levou um notebook 386sx (rodando Linux em seus primórdios) para a aula e forneceu uma resposta a uma pergunta sobre awk. Brian teve contato com Linux relativamente cedo
  • Há um texto do Brian sobre ter colocado a lista telefônica gratuita da AT&T na internet no outono de 1994
  • Lex Fridman fez uma entrevista de uma hora e meia com Brian Kernighan
  • Uma entrevista mais abrangente com Aho e Weinberger está incluída no livro "Masterminds of Programming". Recomendo fortemente
  • Há muito tempo, alguém escreveu na assinatura do Usenet: "perl é margarina, awk é manteiga". Depois de descobrir Perl, passei a usar awk menos
  • Estou lendo o livro "The Unix Programming Environment". awk tem muitos pontos parecidos com linguagens populares de hoje (js, lua, python, perl, tcl)
  • A versão do awk do Unix Seventh Edition de 1979 tinha 2680 linhas de código-fonte, e o executável tinha 46k, rodando no espaço de endereçamento de 64k do pdp-11. Não havia funções definidas pelo usuário
  • bc tinha funções definidas pelo usuário
  • Tenho um livro K&R assinado pelo Dr. Kernighan em uma conferência Unix australiana dos anos 80. É uma peça de coleção preciosa
  • Esse livro, junto com "The Practice of Programming" e a revista Byte, cumpria o papel de "Stack Overflow" nos anos 1980
  • É interessante que ele tenha se referido a arrays associativos como algo "newish". Em Lisp, isso já existia quase 20 anos antes
  • A sequência de desenvolvimento de regex para lex, yacc e awk parece muito convincente
  • Muito conciso
  • Criador do awk: divertido