1 Punkte von GN⁺ 2024-07-19 | 1 Kommentare | Auf WhatsApp teilen
  • Kurzes Interview mit Dr. Brian Kernighan, dem Erfinder von AWK

    • Vorstellung von Dr. Brian Kernighan

      • Dr. Brian Kernighan ist ein kanadischer Informatiker, der bei Bell Labs zur Entwicklung von UNIX beigetragen hat
      • Zusammen mit Dennis Richie verfasste er das Standardwerk zur Programmiersprache C, "The C Programming Language"
      • Seit dem Jahr 2000 bildet er an der Princeton University die nächste Generation von Programmierern aus
      • Er ist bekannt als die Person, die das erste "Hello World!"-Programm schrieb
    • Die neue Idee von AWK

      • Die zentrale Idee von AWK sind assoziative Arrays (associative arrays)
      • Damals war das ein neues Konzept, heute wird es in den meisten Sprachen entweder als Bibliotheksfunktion (hashmaps in Java oder C++) oder direkt in der Sprache selbst (dictionaries in Perl und Python) verwendet
      • Assoziative Arrays sind eine sehr mächtige Struktur und können zur Simulation verschiedenster Datenstrukturen verwendet werden
      • Das Pattern-Action-Paradigma war damals ebenfalls noch nicht weit verbreitet, ist aber eine effektive Methode, bestimmte Berechnungen zu strukturieren
    • Referenzen beim Entwurf der Programmiersprache

      • Dr. Kernighan: "Keine"
      • In den 1970er Jahren gab es viele neue spezialisierte Sprachen, und es gab kaum frühere Arbeiten, auf die man sich beziehen konnte
      • Yacc war ein wichtiges Werkzeug, mit dem sich Grammatiken leicht erstellen und experimentell erproben ließen
      • Lex erfüllte auf lexikalischer Ebene dieselbe Rolle und ersetzte viel mühsamen Code durch Regelsätze
      • Lex und Yacc sind Beispiele für Pattern-Action-Sprachen und bildeten gemeinsam einen positiven Kreislauf
    • Ratschläge für junge Menschen mit Interesse am Entwurf von Programmiersprachen

      • Er rät dazu, eine kleine spezialisierte Sprache zu entwerfen und zu implementieren
      • Das ist sehr unterhaltsam und nützlich und deutlich einfacher, als eine Alternativsprache zu Rust oder C++ zu entwickeln
      • Er empfiehlt, nach Aufgaben zu suchen, die sich automatisieren lassen, und dafür einen einfachen Compiler und eine Runtime zu bauen
      • Ein Artikel, den Jon Bentley vor langer Zeit schrieb, ist weiterhin relevant
    • Bildquelle

      • Wikimedia Commons

Zusammenfassung von GN⁺

  • Dr. Brian Kernighan ist eine wichtige Persönlichkeit, die zur Entwicklung von UNIX und der Programmiersprache C beigetragen hat, und der Erfinder der Sprache AWK, die assoziative Arrays und das Pattern-Action-Paradigma eingeführt hat
  • Assoziative Arrays sind eine mächtige Datenstruktur, die heute in den meisten Programmiersprachen verwendet wird
  • Für junge Programmierer ist es hilfreich, kleine spezialisierte Sprachen selbst zu entwerfen und zu implementieren
  • Yacc und Lex sind Werkzeuge, die Grammatik- und Lexikanalyse erleichtern, und gute Beispiele für Pattern-Action-Sprachen

1 Kommentare

 
GN⁺ 2024-07-19
Hacker-News-Kommentare
  • Brian Kernighan kam 2000 zur CS-Fakultät von Princeton, hatte aber bereits 1993, als er bei Bell Labs Research war, einen Kurs unterrichtet
  • Ein Student brachte ein 386sx-Laptop mit (auf dem frühes Linux lief) und lieferte Antworten auf Fragen zu awk. Brian kam also relativ früh mit Linux in Berührung
  • Es gibt einen Text von Brian aus dem Herbst 1994 darüber, dass AT&Ts kostenloses Telefonverzeichnis ins Internet gestellt wurde
  • Lex Fridman führte ein anderthalbstündiges Interview mit Brian Kernighan
  • Ein umfassenderes Interview zusammen mit Aho und Weinberger ist im Buch "Masterminds of Programming" enthalten. Sehr empfehlenswert
  • Früher schrieb jemand in einer Usenet-Signatur: "perl ist Margarine, awk ist Butter". Nachdem ich Perl entdeckt hatte, benutzte ich awk seltener
  • Ich lese gerade "The Unix Programming Environment". awk hat vieles mit heute populären Sprachen gemeinsam (js, lua, python, perl, tcl)
  • awk in Unix Version 7 von 1979 bestand aus 2680 Zeilen Quellcode, und die Binärdatei war 46k groß und lief im 64k-Adressraum des pdp-11. Benutzerdefinierte Funktionen gab es nicht
  • bc hatte benutzerdefinierte Funktionen
  • Ich besitze ein Exemplar von K&R, das Dr. Kernighan auf einer australischen Unix-Konferenz in den 80ern signiert hat. Ein wertvolles Sammlerstück
  • Dieses Buch, "The Practice of Programming" und das Byte-Magazin erfüllten in den 1980ern die Rolle von "Stack Overflow"
  • Interessant, dass assoziative Arrays als "newish" bezeichnet wurden. In Lisp gab es sie schon fast 20 Jahre früher
  • Die Entwicklungslinie von regex über lex und yacc zu awk wirkt sehr überzeugend
  • Sehr prägnant
  • Der Erfinder von awk: unterhaltsam