1 ポイント 投稿者 GN⁺ 2024-07-19 | 1件のコメント | WhatsAppで共有
  • AWKの創始者 Dr. Brian Kernighan への短いインタビュー

    • Dr. Brian Kernighan の紹介

      • Dr. Brian Kernighan はカナダ出身のコンピュータ科学者で、Bell Labs で UNIX の開発に貢献
      • Dennis Richie とともに、Cプログラミング言語に関する基本書である "The C Programming Language" を共著
      • 2000年から Princeton University で次世代のプログラマーを育成している
      • 最初の "Hello World!" プログラムを書いた人物として有名
    • AWKの新しいアイデア

      • AWK の主要なアイデアは連想配列(associative arrays)
      • 当時は新しい概念だったが、現在ではほとんどの言語でライブラリ関数(hashmaps in Java or C++)や言語自体(dictionaries in Perl and Python)として使われている
      • 連想配列は非常に強力な構造で、さまざまなデータ構造をシミュレートするために使える
      • パターン・アクションのパラダイムも当時は広く使われていなかったが、特定の計算を整理する効果的な方法
    • プログラミング言語を作る際に参照した資料

      • Dr. Kernighan: "なし"
      • 1970年代当時は新しい特定用途向け言語が多く、参考にできる先行資料はほとんどなかった
      • Yacc は文法を簡単に作成して実験できるようにする重要なツールだった
      • Lex は語彙レベルで同じ役割を果たし、多くの退屈なコードをルールセットで置き換えた
      • Lex と Yacc はパターン・アクション言語の例であり、互いに良い循環を生み出していた
    • プログラミング言語設計に関心のある若者への助言

      • 小さな特定用途向け言語を設計して実装してみるよう助言
      • これはとても楽しく有用で、Rust や C++ の代替言語を作るよりはるかに簡単
      • 自動化できる作業を見つけて、簡単なコンパイラとランタイムを作るよう勧めている
      • Jon Bentley がずっと以前に書いた関連記事は今でも有効
    • 画像の出典

      • Wikimedia Commons

GN⁺のまとめ

  • Dr. Brian Kernighan は UNIX と C言語の開発に貢献した重要人物であり、連想配列とパターン・アクションのパラダイムを導入した AWK 言語の創始者
  • 連想配列は現在、ほとんどのプログラミング言語で使われている強力なデータ構造
  • 若いプログラマーにとっては、小さな特定用途向け言語を設計して実装してみることが有益
  • Yacc と Lex は文法解析と字句解析を容易にするツールで、パターン・アクション言語の良い例

1件のコメント

 
GN⁺ 2024-07-19
Hacker Newsのコメント
  • Brian Kernighanは2000年にPrincetonのCS学部に加わったが、1993年にBell Labs Researchにいた時点ですでに1つの授業を教えていた
  • ある学生が386sxノートPC(初期のLinuxを実行)を授業に持ち込み、awkに関する質問への答えを示していた。Brianは比較的早い時期にLinuxに触れていた
  • 1994年秋にAT&Tの無料電話帳をインターネット上に公開したことについてのBrianの文章がある
  • Lex FridmanがBrian Kernighanに1時間半のインタビューを行っている
  • AhoとWeinbergerを交えた、より包括的なインタビューが『Masterminds of Programming』に収録されている。強くおすすめする
  • 昔、誰かがUsenetの署名に「perlはマーガリン、awkはバター」と書いていた。Perlを知ってからはawkを使うことが少なくなった
  • 『The Unix Programming Environment』を読んでいる。awkには現在人気のある言語(js、lua、python、perl、tcl)と似ている部分が多い
  • 1979年の第7版Unixに含まれていたawkは2680行のソースコードで構成され、実行ファイルは46kで、pdp-11の64kアドレス空間で動作していた。ユーザー定義関数はなかった
  • bcにはユーザー定義関数があった
  • 80年代のオーストラリアUnixカンファレンスでDr. Kernighanが署名したK&R本を持っている。大切なコレクションだ
  • その本と『The Practice of Programming』、Byte誌などが、1980年代の「Stack Overflow」の役割を果たしていた
  • 連想配列を「newish」と表現していたのが興味深い。Lispではその20年近く前に登場していた
  • regexからlex、yacc、awkへと続く開発の流れはとても説得力があるように感じられる
  • 非常に簡潔
  • Awkの作者:面白い