Arantium Maestum

プログラミング、囲碁、読書の話題

計算機科学の「傑作論文集」集

ここ数年インターネットを徘徊していて見つけた「傑作論文集」をブックマークして部分的につまみ食いしたりしてきた。

自分用の備忘録として&他の人にも有用かもしれない、ということで記事にしておく。

計算機科学全般

書籍だが、MIT出版の出しているIdeas that Created the Futureという本はすごくおすすめ:

mitpress.mit.edu

アリストテレスまで遡って1980年まで、計算機科学を作り上げた考えの入った46本の論文が取り上げている。編者による各論文が何故重要かという前置きも非常に参考になる。カバーされている分野としても論理学、情報理論人工知能、コンピュータアーキテクチャアルゴリズム、エンジニアリング、プログラミング言語など、本当に幅広い。今「計算機科学」とされているほとんどの分野の萌芽が見られるのではないだろうか。

Barbara LiskovのReading List for Computer Scientists:

jpirker.com

Liskovは抽象的データ型などプログラミング言語の発展に非常に重要な発明をした計算機科学者で、オブジェクト指向をかじったことのある人なら「リスコフの置換法則」の人だといえばわかるかもしれない。彼女が2016年にHeidelberg Laureate Forumで講演した時のおすすめ論文リスト。

Michael Fogusの10 Technical Papers Every Programmer Should Read (At Least Twice):

blog.fogus.me

Clojure界隈で有名なMichael Fogusのリスト。彼のブログはいろいろ面白い話(例えばT言語の話とか)が載っていて好き。というか趣味が合うんだな、多分。

Michael Feathersの10 Technical Papers Every Programmer Should Read (At Least Twice):

web.archive.org

ちなみにこっちが元ネタ、Michael Fogusのほうがパクリオマージュである。というかこちらがよりソフトなデザイン・哲学よりな論文集だったのでFogusの方は意図的に技術的な論文を中心にまとめたとのこと。

プログラミング言語理論

自分の趣味ということもあり、プログラミング言語理論に限定したリストもいくつか発見した。

Types and Programming Languageの作者Benjamin Pierceが知り合いを対象に取ったアンケートを集計したリスト:

www.cis.upenn.edu

In September, 2004, I posted a query to the Types list asking people to name the five most important papers ever written in the area of programming languages. This page collects the responses I received.

とのこと。面白いし読んだことあるものに関しては素晴らしいものばかりなのだけど、結構偏っている気はする。プログラミング言語理論研究者ML学派のReading Listといった印象。LiskovもOderskyもWadlerもSPJもいない。McCarthyやSteeleやFelleisenはかろうじているけど例えばLambda papersは入ってない。かというとMilner4回、PlotkinとReynolds3回となっている。

コーネル大学輪講論文集:

www.cs.cornell.edu

Cornell大学のセミナーで2019年にやった輪講の論文リストとスライド。論文数は13本と、なかなかいい塩梅。

RedditのPL Reading Group:

www.reddit.com

こちらは2019年にReddit経由で開催されていたProgramming Languages Reading Groupの記録(とは言っても議論の内容はほとんど残っていない?)。理論的な論文もそれなりにあるのだが、特筆すべきは言語処理系実装に役に立ちそうなものもしっかりピックアップされているところ。「Compiling Pattern Matching to Good Decision Trees - Luc Maranget」、「A Catalogue of Optimizing Transformations - Frances E Allen, John Cocke」、「Compiling Without Continuations - Simon Peyton Jones」など。

「傑作」ではないかもしれない論文集

ここからは「いろんな面白そうな論文を紹介する」というコンセプトのソース。必ずしも「傑作」である必要はないし、そもそも本数が多いので主旨が違う。

Misreading chatポッドキャスト

misreading.chat

ポッドキャストが始まった時点では)グーグル本社勤務だった森田さんと向井さんが論文をピックアップして紹介、話し合うというポッドキャスト。取り上げる範囲は幅広く、特に機械学習と実務的なソフトウェアのテクニカルレポート的な論文が目立つかもしれない。ゲストの二人は最近ファーストシーズンが終了したmessage passingブログにも参加していた。

Morning paperブログ:

blog.acolyer.org

超有名な「平日は毎日一本論文を紹介する」というコンセプトで続けられていたブログ(現在休止中)。2014年から2021年まで(途中で休止を挟みつつ)続いたので、何百本もの計算機科学論文がピックアップされている。Tagsを見ると機械学習、ソフトウェアエンジニアリング、プログラミング言語、分散システム、アルゴリズム、セキュリティなど本当に様々な分野にわたって紹介している。