1 points par GN⁺ 2024-07-19 | 1 commentaires | Partager sur WhatsApp
  • Brève interview du Dr Brian Kernighan, créateur d'AWK

    • Présentation du Dr Brian Kernighan

      • Le Dr Brian Kernighan est un informaticien canadien qui a contribué au développement d'UNIX chez Bell Labs
      • Il a coécrit avec Dennis Ritchie l'ouvrage de référence sur le langage de programmation C, "The C Programming Language"
      • Depuis 2000, il forme la nouvelle génération de programmeurs à Princeton University
      • Il est célèbre pour avoir écrit le tout premier programme "Hello World!"
    • La nouvelle idée d'AWK

      • L'idée principale d'AWK est celle des tableaux associatifs (associative arrays)
      • À l'époque, c'était un concept nouveau, mais aujourd'hui il est utilisé dans la plupart des langages, soit via des fonctions de bibliothèque (hashmaps en Java ou en C++), soit directement dans le langage lui-même (dictionaries en Perl et en Python)
      • Les tableaux associatifs sont des structures très puissantes, qui peuvent servir à simuler diverses structures de données
      • Le paradigme pattern-action n'était pas non plus largement utilisé à l'époque, mais constitue une manière efficace d'organiser certains calculs
    • Références utilisées lors de la création du langage

      • Dr Kernighan : "Aucune"
      • Dans les années 1970, il existait beaucoup de nouveaux langages spécialisés, et il n'y avait presque aucun travail antérieur vraiment pertinent sur lequel s'appuyer
      • Yacc était un outil important, car il permettait de créer et d'expérimenter facilement des grammaires
      • Lex jouait le même rôle au niveau lexical, en remplaçant une grande quantité de code fastidieux par un ensemble de règles
      • Lex et Yacc étaient des exemples de langages pattern-action, créant entre eux une boucle vertueuse
    • Conseils aux jeunes intéressés par la conception de langages de programmation

      • Il conseille de concevoir et d'implémenter un petit langage spécialisé
      • C'est très amusant et utile, et bien plus facile que de créer un langage alternatif à Rust ou à C++
      • Il recommande de repérer une tâche pouvant être automatisée, puis de créer un compilateur simple et un runtime
      • Un article connexe écrit il y a longtemps par Jon Bentley reste toujours d'actualité
    • Source de l'image

      • Wikimedia Commons

Le résumé de GN⁺

  • Le Dr Brian Kernighan est une figure majeure ayant contribué au développement d'UNIX et du langage C, ainsi que le créateur du langage AWK, qui a introduit les tableaux associatifs et le paradigme pattern-action
  • Les tableaux associatifs sont aujourd'hui des structures de données puissantes utilisées dans la plupart des langages de programmation
  • Pour les jeunes programmeurs, concevoir et implémenter un petit langage spécialisé est un exercice très bénéfique
  • Yacc et Lex sont des outils qui facilitent l'analyse grammaticale et lexicale, et constituent de bons exemples de langages pattern-action

1 commentaires

 
GN⁺ 2024-07-19
Commentaires Hacker News
  • Brian Kernighan a rejoint le département d’informatique de Princeton en 2000, mais il avait déjà donné un cours en 1993 lorsqu’il était chez Bell Labs Research
  • Un étudiant avait apporté en cours un portable 386sx exécutant une première version de Linux et avait fourni une réponse à une question sur awk. Brian a donc été exposé à Linux assez tôt
  • Il existe un texte de Brian sur la mise en ligne, à l’automne 1994, de l’annuaire téléphonique gratuit d’AT&T sur Internet
  • Lex Fridman a réalisé un entretien d’une heure et demie avec Brian Kernighan
  • Un entretien plus complet avec Aho et Weinberger est inclus dans le livre "Masterminds of Programming". Fortement recommandé
  • Quelqu’un avait autrefois écrit dans une signature Usenet : "perl est de la margarine, awk est du beurre". Après avoir découvert Perl, il s’est mis à moins utiliser awk
  • Je suis en train de lire "The Unix Programming Environment". awk présente de nombreuses similitudes avec des langages populaires actuels (js, lua, python, perl, tcl)
  • La version de awk de la 7e édition de Unix, en 1979, comptait 2 680 lignes de code source, et l’exécutable faisait 46k, ce qui lui permettait de tourner dans l’espace d’adressage de 64k du pdp-11. Il n’y avait pas de fonctions définies par l’utilisateur
  • bc, lui, avait des fonctions définies par l’utilisateur
  • Je possède un exemplaire de K&R signé par Dr Kernighan lors d’une conférence Unix australienne dans les années 80. C’est une pièce de collection précieuse
  • Ce livre, ainsi que "The Practice of Programming" et le magazine Byte, jouaient le rôle de "Stack Overflow" dans les années 1980
  • Il est intéressant qu’il ait qualifié les tableaux associatifs de "newish". Ils étaient apparus dans Lisp presque 20 ans plus tôt
  • Dans l’histoire des regex, l’enchaînement lex, yacc puis awk paraît très convaincant
  • Très concis
  • Le créateur de Awk : amusant