• トップ
  • ブログ一覧
  • コンパイラの発展に貢献した才女「フランシス・エリザベス・アレン」
  • コンパイラの発展に貢献した才女「フランシス・エリザベス・アレン」

    広告メディア事業部広告メディア事業部
    2023.07.07

    ITエンタメ

    コンパイラ最適化に貢献した才女?

    ミツオカミツオカ
    師匠、プログラミング言語ってたくさんありますよね
    にゃんこ師匠にゃんこ師匠
    そうだな。
    コンピュータの進化とともにプログラミング言語も進化してきたからな!
    ミツオカミツオカ
    こんなにあったらコンピュータもこんがらがってしまわないかのかな?
    にゃんこ師匠にゃんこ師匠
    コンピュータにはコンパイラがあるから大丈夫なんじゃよ。
    どんな言語もコンパイラでコンピュータにわかる言葉に変えてくれるからな!
    ミツオカミツオカ
    まるで翻訳家ですね
    にゃんこ師匠にゃんこ師匠
    じゃな!
    ちなみに、コンパイラの発展には、IBMフランシス・エリザベス・アレンの功績が多かったのだ
    ミツオカミツオカ
    女性ですか!
    才媛だったのですね!
    にゃんこ師匠にゃんこ師匠
    では今日は彼女の話をしよう!

    数学教師からIBMの科学者へ

    1932年8月4日、フランシス・エリザベス・アレンはニューヨーク州ペリーの農家の長女として生まれました。

    アレンは高校時代の授業で数学の魅力に取りつかれ、数学の教師になることを志しました。

    1954年にニューヨーク州立師範学校で数学の学士を取得し、故郷で憧れの教師になりましたが、まだ正式な教師ではありませんでした。

    正式な教師になるには修士号が必要でした。

    アレンは、修士号を取得するためにミシガン大学に入学するのでした。

    IBMに入社

    ミシガン大学ではコンピュータコースがあり、IBM-650のプログラミングを学びました。

    ちょうどその時、IBMが就職を募集しており、学費を返済したいアレンはチャレンジ。

    みごと、試験に合格しました。

    アレンは「1年間仕事をしたら、また教職に戻ればいいや」という軽い気持ちで、IBMに入社しました。

    この時は、まさか45年間勤め続けるようになるとは思いもしませんでした。

    Fortran

    アレンが入社したIBMは、この頃商用コンピュータIBM-701NSA(アメリカ国家安全保障局)や大学機関、航空会社などに搬入し、顧客の希望に応えるため、更なるコンピュータ開発を進めていました。

    アレンが最初にした仕事は、ジョン・バッカスが開発したばかりの高水準プログラミン言語「Fortran(formula translation)IBMの研究者たちに教えることでした。

    高水準言語はそれまでに開発されていましたが、パフォーマンスが悪く、研究者たちはアセンブリ言語を使い続けていました。

    Fortran」は関数や複素数などが組み込まれた科学技術計算に特化したプログラミング言語でした。

    1. 数値計算プログラムを簡単に書ける。
    2. プログラムの誤りが少ない。
    3. 大規模な演算も高速で処理できる。

    新しく複雑な言語であるため、事前に学習する必要がありました。

    アレンは教えるために、「Fortran」を十分に理解しなければならず、「コンピュータ」や「コード」「コンパイラ」について熱心に勉強しました。

    しかし、この仕事でコンパイラに強く興味を持つようになったのでした。

    にゃんこ師匠にゃんこ師匠
    初期のコンピュータでは、機械語でプログラミングしていたが、それでは人間にはわかりにくく、人間にもわかりやすい高水準のプログラミング言語が開発されていったのだ
    ミツオカミツオカ
    人間と機械のコミュニケーションに苦労していたのですね
    にゃんこ師匠にゃんこ師匠
    高水準のプログラミング言語ではコンピュータの言葉である機械語に変換する必要があり、コンパイラの出番となったのだ
    ミツオカミツオカ
    コンパイラの役目は重大ですね
    にゃんこ師匠にゃんこ師匠
    正しく、速く変換しないといけないわけじゃ

    Stretch-Harvest プロジェクト

    アレンが次に取り組んだのは、Stretch-Harvestプロジェクトでした。

    Stretch-Harvest プロジェクトは、当時としては最速のスーパーコンピュータIBM-7030のシステムを開発するプロジェクトでした。

    プログラミング言語は「Fortran」「Autocoder」「Alpha」3つの言語を使用し、これらを一つのコンパイラフレームワークで処理することになり、アレンは他の二人のメンバーとともに設計を担当し、NSA(アメリカ国家安全保障局)との連絡係も務めました。

    また「Alpha」の開発もし、何度もテストを重ね調整していきました。

    完成したコンパイラフレームワークはStrech(IBM-7030)Harvest(IBM-7950)、両方のコードを生成し、共通の最適化バックエンドに成功しました。

    Stretch-Harvest 1962NSAへ搬入されましたが、当初計画されていた速度よりも遅く、IBMとしては決して成功したとは言えませんでした。

    しかし、「メモリ」「トランジスタ回路設計」などが向上し、以後のコンピュータ開発に影響を与えました。

    にゃんこ師匠にゃんこ師匠
    この頃のIBMはレミントン・ランド社のUNIVACと競り合い、大型コンピュータをNSAの要望を応えるため開発を進めていたのだ
    ミツオカミツオカ
    UNINACは、世界初の商用コンピュータでしたね
    にゃんこ師匠にゃんこ師匠
    UNINACはビジネス用の単純計算に向いていたが、Strechは科学技術計算ができていたから、暗号計算を必要とする国家機関や複雑な計算をする研究機関には必要とされるようになっていくんじゃ

    IBM Advanced Computer Systems プロジェクト

    アレンは休む暇もなく、次へのプロジェクトに参加します。

    IBMStrechより100倍速いコンピュータを開発することを目標に、「IBM Advanced Computer Systemsプロジェクト」を始めました。

    アレンは、ジョン・コックが率いるアーキテクチャグループのメンバーとなり最適化コンパイラに挑みます。

    速度アップするのため、最適化コンパイラは重要視されていました。

    このプロジェクトで開発されたハードウェアのプロフェッサーは今まで一つずつ順番通りに行っていた処理を、一度に複数できるようにしてスピードアップを図りました。

    アレンが開発したコンパイラは、グラフ構造にして、コードの関連性を明確にし、計算された値が再利用できるにしました。

    この時のコンパイラの最適化についてアレンは、1966年の論文「Program Optimization」に書いています。

    またこのプロジェクトでアーキテクチャに技術的欠陥があることに気付き、経営陣に手紙で知らせましたが、しばらく無視されました。

    プロジェクトで開発されたACS-360は結局販売されず、1969年にプロジェクトは終了。

    次のプロジェクトへ変わっていきました。

    プロジェクト PTRAN

    IBMの新しいプロジェクト「Experimental Compiler Systems プロジェクト (ECS)」では「PL/I」というプログラミング言語を使用しました。

    PL/I」では「Fortran」の科学技術計算、「COBOL」の入出力機能、「ALGOL」のアルゴリズム機能を備えていました。

    この言語に対応するためアレンはプロジェクトPTRANを始めます。

    PL/I」は高度な計算を必要とするスーパーコンピュータには適していましたが、言語が複雑であり、最適化コンパイラの開発は困難でした。

    そこでアレンは、イリノイ大学のデビッド・クックに相談しました。

    クックはコンパイラの並列処理に取り組んでいて、アレンといっしょに研究し、教え子たちはメンバーとなりアレンの開発を支援してくれました。

    アレンはプロジェクトメンバーとともにコードを分析し、アルゴリズムを考え、並列処理のコードをいろいろ試す毎日を送ります。

    この研究は15年間続き、その間にアレン、またはクックとともにコンパイラの最適化についての論文を書いています。

    1. 1970年:効率的で効果的なデータフロー分析と最適化における "intervals" の概念を確立
    2. 1971年:最適化変換について初の体系的記述(コックと共同)
    3. 1973年~1974年:手続き間のデータフロー分析をプログラム全体の分析に拡張
    4. 1976年:「A Catalog of Optimizing Transformations」最適変換のカタログ(コックと共同)

    これらの研究で得た技術はIBMの製品や他にも取り入られて、コンパイラの発展に貢献しました。

    女性科学者の冒険

    アレンのコンパイラ最適化の研究は認められ、1989年にIBMフェローに任命。

    その後、2006年にはチューリング賞を受賞しています。

    いずれも女性初のできごとでした。

    アレンはチューリング賞の受賞後のインタビューで、

    このことが、女性が科学・コンピューティング・工学分野で活躍する機会をより多く与えることになるだろう

    と語っています。

    アレンがIBMに勤め始めた頃は、周りに女性社員はいましたが、次第に少なくなり、気がつけば周りは男性ばかり。

    そんな環境は時にアレンを落ち込ませましたが、彼女は目の前にある課題にひたすら挑み続けてきたのでした。

    2002年にアレンはIBMを退職。

    その後、女性たちが科学者として自分と同じように仕事ができるように活動し、支援しました。

    私生活では、北極やチベットなどへ行き冒険を楽しみ、環境問題にも取り組みました。

    2020年、この日はアレンの誕生日でした。

    この日、アレンの冒険は終わりを迎えるのでした。

    ミツオカミツオカ
    アレンのように活躍できる女性は、当時は一握りだったのですね
    にゃんこ師匠にゃんこ師匠
    今のように女性が男性と同様に高度な教育を受けたり、仕事が与えられたりするような時代ではなかったから、アレンがどれだけ凄かったかを物語っておるな
    ミツオカミツオカ
    今は恵まれているはずですけど、まだまだコンピュータ関係の女性のスペシャリストは少ないかもしれないですね
    にゃんこ師匠にゃんこ師匠
    理系は男子というイメージが長かったからなあ…
    まあ少しずつではあるが増えてきていることも確かだ!
    ミツオカミツオカ
    わたしも理系女子としてこれからもがんばります🔥
    にゃんこ師匠にゃんこ師匠
    ○そうじゃな!期待しているぞミツオカ!
    それでは、明日納品のWEBシステムを仕上げるぞ
    ミツオカミツオカ
    いえ、まずはやらないといけないことがあります🔥
    にゃんこ師匠にゃんこ師匠
    ん?
    何をやることがある?
    ミツオカミツオカ
    まずは北極やチベットに冒険行ってきます!
    にゃんこ師匠にゃんこ師匠
    サボりたいだけじゃろ!

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    広告メディア事業部

    広告メディア事業部

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background