バーバラ・リスコフ:データ抽象化の最初の建築家
1968年、バーバラ・リスコフはアメリカで計算機科学の博士号を取得した最初の女性の一人となった。40年後、MITのプロボストは、誰かがオンラインで銀行口座の残高を確認したり検索を実行したりするたびに、彼らは「彼女の研究の勢いに乗っている」と世界に語った。その2つの瞬間の間に、彼女はデータ抽象化、抽象データ型、ある型が安全に別の型に取って代わることができるかどうかの形式的ルールなど、それ以降に書かれたほぼすべてのプログラミング言語の下で静かに動作する概念的な足場を構築した。
コンピューティングにおけるありそうもない始まり
バーバラ・ジェーン・フーバーマン (Barbara Jane Huberman) は、1939年11月7日にロサンゼルスで4人兄弟の長女として生まれた。カリフォルニア大学バークレー校で数学を専攻し、物理学を副専攻し、1961年に数学を学ぶクラスでわずか2人の女性のうちの1人として卒業した。女性にとって技術職のキャリアがほとんど存在しなかった当時、簡単な道を選ぶのではなく、スタンフォード大学が新しい計算機科学プログラムに彼女を受け入れる前に、ミトレ社 (Mitre Corporation) でプログラマーとして就職した。1968年の博士論文ではチェスのエンドゲーム・プログラミングに取り組み、人工知能で今も議論されている探索枝刈り手法である「キラーヒューリスティック (killer heuristic)」を生み出した。彼女の博士論文の指導教官は、AIという分野の創設者の1人であるジョン・マッカーシー (John McCarthy) だった。彼女は、計算機科学の学科から博士号を授与されたアメリカ初の女性として認識されている。
CLUとデータ抽象化のアイデア
リスコフは1972年にMITに入社し、後にプログラミング方法論グループとなるチームを率いた。そこで1970年代半ばに彼女はCLUを設計した。当時、ほとんどのプログラマーは手続き型でソフトウェアを構成しており、データ構造を直接操作する一連の手順を記述していたため、両者が至る所で絡み合っていた。CLUは「クラスター (clusters)」を導入した。これは、データ型とそれにアクセスできる唯一の操作をまとめた自己完結型のモジュールであり、内部表現をプログラムの他の部分から完全に隠蔽した。これがデータ抽象化であり、それがソフトウェア工学をいかに徹底的に作り変えたかを誇張することは困難である。Java、C++、C#、Adaの核心にあるクラス構造はすべて、CLUのクラスターにその系譜をたどることができる。リスコフは、大規模なソフトウェアシステムは、クリーンなインターフェースを持ち、個別に検証可能な小さなピースに分割された場合にのみ確実に構築できるという主張を、実際のコードで表現するために言語を構築した。
アーガス (Argus)、ビザンチン故障耐性、および分散システム
リスコフは単一マシンのプログラムにとどまらなかった。1980年代には、分散コンピューティングをサポートするために特別に構築された最初の高レベルプログラミング言語であるアーガス (Argus) の開発を主導した。これは、ネットワークを介して通信する複数のマシンに分割された場合でも正しく動作するプログラムであり、今日ではあらゆるクラウドサービスとWebアプリケーションの基礎となっている。その後、彼女はさらに困難な問題に取り組んだ。それは、分散システムが、コンポーネントマシンの一部が任意に故障したり悪意を持って動作したりした場合でも、どのように正しく機能し続けるかという問題で、計算機科学者はこれを「ビザンチン故障 (Byzantine fault)」と呼んでいる。彼女と彼女の学生がビザンチン故障耐性のために開発した実用的な手法は、現在、大規模なインターネットサービスの信頼性を維持するインフラストラクチャに組み込まれており、後にいくつかのブロックチェーン合意プロトコルの基礎となっている。
彼女の名を冠した原則
1987年の基調講演で、リスコフは後にジャネット・ウィング (Jeannette Wing) と共に形式化される「リスコフの置換原則」として知られるようになる概念を明確に示した。あるプログラムが特定の型のオブジェクトを使用するように書かれている場合、プログラムの正確性を損なうことなく、その型の任意のサブタイプのオブジェクトを使用できるはずであるというものだ。簡潔に述べれば自明に聞こえるが、それこそが重要な点である。つまり、「サブクラスは親クラスのように振る舞うべきである」という漠然とした直感を、正しいオブジェクト指向設計のための厳密でチェック可能な基準に変えたのである。この原則は、ほぼすべてのソフトウェア工学の学生に教えられる5つの「SOLID」原則の1つとなり、個々の研究者の名前が業界全体の作業語彙に入るという稀な事例となった。
チューリング賞と評価
2008年、ACM(計算機学会)は、リスコフに計算機科学の最高栄誉であるA.M.チューリング賞を授与した。「データ抽象化、故障耐性、分散コンピューティングに関連する、プログラミング言語とシステム設計の実用的および理論的基盤への貢献」に対してである。彼女はこれを受賞したわずか2人目の女性だった。当時のMIT学長スーザン・ホックフィールド (Susan Hockfield) は、彼女の貢献を「MITの理想:深遠な利益をもたらす画期的な研究」と呼び、プロボストのL・ラファエル・ライフ (L. Rafael Reif) の賛辞はより具体的だった。「あなたがメールを交換し、オンラインで銀行取引明細書を確認し、Google検索を実行するたびに、あなたは彼女の研究の勢いに乗っているのです」。彼女はすでに2004年にIEEEジョン・フォン・ノイマン・メダルを受賞しており、2012年には全米発明家殿堂入りを果たし、その後2023年にはベンジャミン・フランクリン・メダルを受賞した。彼女は2008年に授与された大学最高の教員職であるMITインスティテュート・プロフェッサーを現在も務めている。
バーバラが天才と呼ばれる理由
リスコフの天才性に関する議論は、抽象化そのものに関する議論である。それは、複雑なシステムの中に正しい境界線を見つけ、各部分をそれだけで理解し、信頼できるようにするという特定の知的能力である。CLUのクラスターと彼女の名を冠した置換原則は、派手な発明ではない。それらは1970年代のほとんどのプログラマーがまだ明確に言葉にすることを学んでいなかった問題に対する正確な回答であり、それがこの分野で個人がこのように評価されることが稀である中で、彼女の名前が解決策に永続的に結びついた理由の一部である。チューリング賞委員会の言葉である「実用的および理論的基盤」は、まさにこれを示唆している。単一の成果物ではなく、言語や時代を超えて一般化された正確さについての考え方である。正直な反論として、リスコフはすでにモジュール性と抽象型に向かいつつあった研究の伝統の中で働いていたという点がある。トニー・ホーア (Tony Hoare)、ニクラウス・ヴィルト (Niklaus Wirth) なども同時に類似のアイデアを追求しており、CLU自体は広く使用される実用言語にはならなかった。その影響は、その概念を採用した後の言語を通じて、間接的に届いた。証拠から見て、彼女の天才性は純粋な発明というよりは、他に先んじて抽象化を正確に正しく行うという並外れた明晰さにあった。
遺産
リスコフのアイデアは現在、電話、銀行、検索エンジンを動かすソフトウェアの下に目に見えない形で組み込まれており、彼女の名前は、「これはリスコフの置換原則に違反しているか?」といった形式の省略形として、彼女の論文を一度も読んだことがないかもしれないエンジニアによって行われるコードレビューの中で生き続けている。これほど完全に分野の常識に溶け込み、人々がそこに名前があったことさえ忘れてしまうという、特定の魅力的ではない形の不滅性を達成した研究者は少ない。

.jpg)
