ケネス・ユージン・アイバーソン(1920年12月17日 - 2004年10月19日)は、プログラミング言語APLの開発で知られるカナダのコンピュータ科学者である。彼は1979年にチューリング賞を受賞し、 「プログラミング言語と数学的記法における先駆的な取り組みにより、現在コンピュータ分野でAPLとして知られるものを生み出したこと、対話型システムの実現、APLの教育的利用、プログラミング言語の理論と実践への貢献」が評価された。[ 1 ]
ケン・アイバーソンは1920年12月17日、カナダのアルバータ州中央部の町カムローズ近郊で生まれた。[ 2 ]彼の両親はノースダコタ州からアルバータ州に移住してきた農民で、彼の祖先はノルウェーのトロンハイム出身だった。[ 3 ]
第二次世界大戦中、彼はまずカナダ陸軍に、次にカナダ空軍に勤務した。[ 3 ] [ 4 ]彼はクイーンズ大学で学士号、ハーバード大学で修士号と博士号を取得した。キャリアの中で、彼はハーバード大学、IBM、IP Sharp Associates、Jsoftware Inc.(旧Iverson Software Inc.)で働いた。
アイバーソンは2004年10月16日に新しいJラボでコンピューター作業中に脳卒中を起こし[ 5 ] 、2004年10月19日にトロントで83歳で亡くなった[ 2 ]。
アイバーソンは1926年4月1日に1教室の学校に入学し[ 4 ]、最初は1年生だったが、3か月後に2年生に進級し、1927年6月末までに4年生になった。大恐慌の真っ只中で家族の農場でやらなければならない仕事があったことと、さらに学校に通っても教師になるだけだと考え、教師になりたいとは思わなかったため、9年生で学校を辞めた。17歳でまだ学校に通っていない間に、シカゴのデ・フォレスト・トレーニングでラジオの通信講座に登録し、教科書で独学で微積分を学んだ[ 4 ] [ 6 ] 。第二次世界大戦 中、カナダ空軍に勤務しながら、高校卒業資格取得のための通信講座を受講した。
戦後、アイバーソンはオンタリオ州キングストンのクイーンズ大学に入学した。これは、退役軍人に対する政府の支援を利用したものであり、空軍時代の友人から「この機会を逃したら頭を殴ってやる」と脅されたためでもあった。[ 4 ]彼は1950年に数学と物理学の学士号を取得し、首席で卒業した。[ 3 ]
彼はハーバード大学で教育を続け、数学科に入学し、 1951年に修士号を取得した。その後、工学・応用物理学科に移り、ハワード・エイケンやワシリー・レオンチェフと共に研究を行った。
ケネス・アイバーソンは、エイケン教授の下での大学院研究を「見習いのようなもの」と振り返り、学生は「学問という仕事の道具を学んだ」と述べている。どのテーマも「それ自体が目的というよりは、思考や表現の明晰さといったスキルを磨くための焦点として用いられた」。プログラムに入学すると、大学院生は「仲間入り」の儀式を経る。他の大学院生、常勤職員、客員研究員らと共に机(あるいは机の共有スペース)を与えられ、そのほとんどが「コンピュータの設計や構築に関わる何らかの分野に従事していた」。こうして学生は「学術的な営みの一員であるという実感」を得ることができ、「多くの場合、初めて、自分の選んだ分野でより経験豊富な人々と容易かつ親密に交流する機会を与えられた」。
— I. バーナード・コーエン、『ハワード・エイケン:コンピュータのパイオニアの肖像』、MIT Press、1999年、215ページ。 [ 7 ]
エイケン氏にインタビューした際、トロップ氏と私が彼の講義ノートを見せてもらえるかどうか尋ねたところ、エイケン氏は、講義を繰り返したくなる誘惑に駆られないように、毎年年末に講義ノートを破棄していると答えた。
— I. バーナード・コーエンとグレゴリー・W・ウェルチ編『Makin' Numbers』、MIT Press、1999年、xviページ。[ 8 ]
ハワード・エイケンは、最初の大規模デジタルコンピュータの1つであるハーバード・マークIを開発し、一方ワシリー・レオンチェフは、後にノーベル賞を受賞することになる経済分析のインプット・アウトプット・モデルを開発していた経済学者でした。レオンチェフのモデルは大規模な行列を必要とし、アイバーソンはハーバード・マークIVコンピュータでこれらの行列を評価できるプログラムに取り組んでいました。アイバーソンは、この研究に基づいた論文で1954年に応用数学の博士号を取得しました。 [ 9 ] [ 10 ]
ハーバード大学で、アイバーソンはアルバータ州出身で2度パトナム・フェローに選ばれた大学院生のイオイン・ホイットニーと出会った。[ 11 ] [ 12 ] これは将来に影響を与えることになる。

アイバーソンはハーバード大学に助教授として残り、「自動データ処理」の世界初の大学院プログラムを実施しました。[ 15 ] [ 16 ] [ 17 ]
多くの人は、エイケンが科学計算機にしか興味がなかったと思っているが、それは全くの誤りだった。あるコーヒータイムに、エイケンは博士号を取得したばかりのケン・アイバーソンにこう言った。「これらの機械はビジネスにとって非常に重要になるだろう。だから、来年の秋にビジネスデータ処理のコースを準備して教えてほしい」。当時、世界中のどこにもそのようなコースは存在しなかった。ケンが適任だったのは、彼が数学者だったからに他ならない。私はその見込みに大いに興奮し、すぐにケンの大学院生ティーチングアシスタントに志願した。
— Frederick Brooks Jr.、「Aiken and the Harvard “Comp Lab”」、I. Bernard Cohen および Gregory W. Welch 編、『Makin' Numbers』、MIT Press、1999 年、141 ページ。 [ 8 ]
この時期にアイバーソンは、データ処理のさまざまなトピックを記述および分析するための記法を開発し、授業を教え、ブルックスと共著で『自動データ処理』を執筆した。[ 18 ]彼は、従来の数学記法では自分のニーズを満たせないことに「愕然と」し、より適切な記法の拡張に取り組み始めた。特に、彼は学位論文で使用した行列代数、テンソル解析における行列と高次元配列の体系的な使用、マックスウェル方程式の扱いにおけるヘヴィサイドの意味での演算子、関数引数に対する関数結果を持つ高階関数を採用した。 [ 4 ]この記法は、1957年にマッキンゼー・アンド・カンパニー で過ごした6か月のサバティカル中にビジネスの世界でも実地テストされた。[ 4 ] [ 19 ]この表記法を用いた最初の発表論文は「有限逐次プロセスの記述」であり、当初はベル研究所への報告書番号 23 であったが、後に改訂され、1960 年 8 月に第 4 回ロンドン情報理論シンポジウムで発表された。[ 13 ] [ 20 ]
アイバーソンはハーバード大学に5年間在籍したが、終身在職権を得ることができなかった。「彼は小さな本を1冊出版しただけで、それ以外は何も出版していなかった」からである。[ 3 ]
アイバーソンは1960年にIBMリサーチに入社し(そして給料は倍増した)。[ 4 ] IBMに先立って入社したフレッド・ブルックスは、アイバーソンに「経営陣はアイデアに飢えているので、明らかに突飛なものでなければ何でも支持を得られるだろうから、自分が本当にやりたいことに固執しなさい」と助言した。特に、ハーバード大学で開発された記法を解説し使用した2冊の本、 『プログラミング言語』[ 20 ] [ 21 ]と(ブルックスとの共著で)『自動データ処理』[ 18 ]を完成させて出版することが許された。(『自動データ処理』と『プログラミング言語』は当初1冊の本として始まったが、「内容が膨大かつ高度になったため、分離するのが賢明だと判断された」[ 18 ] [ 21 ])。
IBMでアイバーソンはすぐにアディン・ファルコフと出会い、その後20年間一緒に働いた。『プログラミング言語』の第2章では、IBM 7090コンピュータの説明にアイバーソンの記法が使われている。[ 20 ] [ 21 ] 1963年初頭、ファルコフは後にアイバーソンとエド・サッセンガスも加わり、当時設計中だったIBM System/360コンピュータの正式な記述を作成するためにその記法を使い始めた。[ 22 ]その結果は1964年にIBM Systems Journalの2冊組で出版され、[ 23 ]それ以降「グレーブック」または「グレーマニュアル」として知られるようになった。この本はIBMシステム研究所のコンピュータシステム設計のコースで使用された。[ 23 ]正式な記述の結果、優秀な若者の関心を惹きつけた。[ 4 ] [ 24 ]関心の的となった場所の一つはスタンフォード大学で、ラリー・ブリード、フィル・エイブラムス、ロジャー・ムーア、チャールズ・ブレナー[ 25 ]、マイク・ジェンキンス[ 26 ] [ 27 ]などがおり、彼らは皆後に APL に貢献した。360システムの一般顧客向け導入を初めて行ったポモナ大学の地質学科長ドナルド・マッキンタイアは、正式な説明を利用して、ポモナに配属された IBM システム エンジニアよりも専門家になった。[ 4 ] [ 28 ]
正式な記述が完成すると、ファルコフとアイバーソンは実装に注力した。この作業は、1965年にラリー・ブリードとフィル・エイブラムスがプロジェクトに参加したことで急速に実を結んだ。彼らは1965年の秋までに、7090上でFORTRANベースの実装であるIVSYS(アイバーソン・システム)を最初にバッチモードで、その後1966年の初めに時分割対話モードで作成した。[ 25 ] [ 29 ] [ 30 ]その後、ブリード、ディック・ラスウェル(元アルバータ大学)、ロジャー・ムーア(IPシャープ・アソシエイツ)がSystem/360の実装を作成した。[ 31 ]この3人は1973年に「対話型システムのシンプルさ、効率性、信頼性、応答時間において新たな基準を確立したAPL/360の設計と実装における功績」により、グレース・マレー・ホッパー賞を受賞した。 [ 32 ] 360 の実装作業が進行中に、「アイバーソン記法」[ 30 ] [ 33 ]はファルコフによって「APL」と改名されました。[ 34 ]ワークスペース「1 cleanspace」は 1966-11-27 22.53.58 UTCに保存されました。[ 24 ] APL\360 サービスは、その数週間前に IBM 内で開始され[ 35 ]、IBM 外では 1968 年に開始されました。 [ 29 ] APL\360 の実装に関する追加情報は、APL\360 ユーザー マニュアルの謝辞[ 36 ]およびThe Design of APLの「付録 APL 開発の年表」に記載されています。[ 22 ]

形式的な記述、特に実装が言語の進化を促し、タイポグラフィ、線形化、構文、関数定義の統合と正規化のプロセスが、APL\360 History [ 39 ] 、The Design of APL [ 22 ]、The Evolution of APL [ 19 ]で説明されています。この時期の 2 つの論文、Conventions Governing the Order of Evaluation [ 40 ]とAlgebra as a Language [ 41 ]は、 APL 記法の擁護です。
この表記法は、ファルコフとアイバーソンがさまざまな大学や IBM システム研究所でさまざまなトピックを教えるために使用しました。[ 22 ] [ 39 ] 1964 年、アイバーソンはフォックス レーン高校の上級生向けの 1 学期のコースでこの表記法を使用し、[ 34 ] [ 42 ]その後スワースモア高校でも使用しました。[ 4 ] APL が利用可能になった後、その最初のアプリケーションは、NASA ゴダードでシステム設計の形式手法を教えることでした。[ 39 ] [ 43 ]また、ホットキス スクール、[ 25 ]ローワー カナダ カレッジ、 [ 44 ]スコッチ プレーンズ高校、[ 45 ]アトランタ公立学校、[ 46 ] [ 47 ]などでも使用されました。ある学校では、生徒たちが APL のコンピュータ時間をもっと確保するために放課後に学校に侵入するほど熱心になりました。[ 24 ] [ 48 ]別の例では、APL愛好家が初心者をBASICに誘導し、自分たちのAPLに費やす時間を最大限に増やした。[ 25 ]
1969年、アイバーソンとAPLグループはIBMフィラデルフィア科学センターを開設した。[ 29 ] [ 39 ] 1970年、彼はIBMフェローに任命された。[ 49 ]彼はIBMフェローとしての資金を使って、ポモナ大学のドナルド・マッキンタイア[ 28 ]や夏季学生のジェフ・シャリット[ 24 ]など、さまざまな分野の客員教師や教授を招いた。数ヶ月間、訪問者はそれぞれの分野の展示会にAPLを使用し始め、その後、彼らが所属機関でAPLの使用を継続することを期待していた。[ 50 ]この時期のアイバーソンの研究は、回路理論、遺伝学、地質学、微積分学の共同プロジェクトなど、いくつかの分野に集中していた。[ 51 ] [ 52 ] [ 53 ] [ 54 ] 1974年にPSCが閉鎖されたとき、[ 29 ] [ 34 ]グループの一部はカリフォルニアに移り、アイバーソンを含む他のメンバーは東海岸に残り、後にIBMリサーチに戻った。彼は1979年にチューリング賞を受賞した。 [ 1 ]
以下の表は、アイバーソンがIBM在籍中に執筆または共著した出版物の一覧です。これらは、彼の研究における二つの主要な流れを反映しています。

1980年、アイバーソンはIBMを離れ、APLタイムシェアリング会社であるIP Sharp Associatesに移籍した[ 79 ] [ 80 ]。彼に先立って、IBMの同僚であるポール・ベリー、ジョーイ・タトル、ディック・ラスウェル、ユージン・マクドネルがそこにいた。IPSAでは、APL言語およびシステムグループはエリック・アイバーソン(ケン・アイバーソンの息子)が管理し、 APL\360の実装者の1人であるロジャー・ムーアが副社長を務めていた。
アイバーソンは『演算子と関数』で提示された路線に沿ってAPLの開発と拡張に取り組んだ。[ 73 ] [ 81 ]言語開発は1981年にアーサー・ホイットニーとアイバーソンがIPSAのOAGデータベースの開発と並行してAPLで書かれたAPLモデルを作成したことで勢いを増した。[82][83](アイバーソンはイオイン・ホイットニーの息子であるアーサー・ホイットニーが11歳の時にAPLを紹介し[ 12 ]、 1974年にはIPSAカルガリーの夏季学生のポジションに彼を推薦した。[ 24 ])このモデルでは、APL構文は11×5のテーブルによって駆動されていた。ホイットニーはこの過程でランク演算子も発明した。[ 85 ]言語設計は、1983 年 1 月にRationalized APL [ 86 ]でさらに簡素化され拡張され、1984 年と 1987 年の間にA Dictionary of the APL Languageの複数の版、および1987 年 9 月にA Dictionary of APL [ 87 ]が出版されました。IPSA 内では、「辞書 APL」というフレーズが、 A Dictionary of APLで規定された APL を指すために使われるようになり、それ自体が「辞書」と呼ばれています。辞書では、APL 構文は 9 x 6 テーブルで制御され、解析プロセスは表 2 で正確かつ簡潔に記述されており、単語形成 (字句解析)のためのプリミティブ (単項 ⊥、APL でモデル化) があります。
1970年代と1980年代には、主なAPLベンダーはIBM、STSC、IPSAであり、3社すべてが言語の開発と拡張に積極的に取り組んでいた。IBMはジム・ブラウンの研究に基づいたAPL2を持っていた。[ 88 ] [ 89 ] [ 90 ] APL2の開発は15年間断続的に進められ、[ 29 ]実際のコーディングは1971年に始まり、APL2は1982年にIUP(インストール済みユーザープログラム、IBMの製品分類)として利用可能になった。STSCはボブ・スミスが設計・実装したNARSと呼ばれる実験的なAPLシステムを持っていた。[ 91 ] [ 92 ] NARSとAPL2は、辞書APLとは根本的に異なり、[ 93 ]互いに異なっていた。
IP Sharp は、新しい APL のアイデアを段階的に実装しました。複素数[ 94 ] 1981 年に囲まれた (ボックス化された) 配列、マッチ、合成演算子[ 95 ] 1982 年に行列式演算子[ 96 ] 1983 年にランク演算子、リンク、左および右の恒等関数[ 97 ]しかし、演算子のドメインは依然として基本関数またはその部分集合に制限されていました。1986 年に、IPSA はSTSCの実装に基づいて C で書かれた SHARP APL/Unix であるSAX [ 77 ] [ 98 ]を開発しました。この言語は辞書で指定されており、演算子のドメインに制限はありませんでした。SAX のアルファ版は、1986 年 12 月頃または 1987 年初頭に IP Sharp 内で利用可能になりました。
教育分野では、アイバーソンはIPSAの顧客にAPLの使い方を教えるために使用されるSHARP APLミニコース[ 99 ] [ 100 ] 、およびTHトゥエンテのコンピュータサイエンスコースで使用される応用数学[ 101 ]と数学とプログラミング[ 102 ]を開発しました。

アイバーソンがIP Sharp Associates在籍中に執筆または共著した出版物:


アイバーソンは1987年にIP Sharp Associatesを退職した。彼は「転職活動中」も精力的に活動していた。言語設計に関して言えば、この時期の彼の活動で最も重要なものは、1988年の「フォーク」の発明である。[ 111 ] 彼は長年にわたり、微積分のようにf+gを記述する方法を見つけるのに苦労し、1978年の「スカラー演算子」[ 73 ]から、 1982年の「til」演算子[ 82 ] [ 86 ] 、 1984年の連結演算子と再形成演算子[ 106 ] 、 1987年の和集合演算子と積集合演算子[ 87 ] 、 1988年の「yoke」[ 112 ]、そして最終的に1988年のフォークへと至った。フォークは次のように定義される。
さらに、(fgpqr) ←→ (fg (pqr)) である。したがって、微積分のように f+g と書くには、APL で f+g と書くことができる。アイバーソンとユージン・マクドネルは、オーストラリアのシドニーで開催された APL88 会議への長時間の飛行機移動中に詳細を詰め、アイバーソンは昼寝から目覚めたときに最初のアイデアを思いついた。[ 85 ] [ 113 ] [ 81 ] : §1.3、§3.8
アイバーソンは1987年以降の自身の研究の根拠を次のように説明した。[ 16 ]
定年退職後、私はこの問題(教育におけるAPLの使用)に再び注目し、必要な基本的なツールは次のようなAPLの方言であるとすぐに結論付けました。
- ・シェアウェアとして提供されており、学生や学校が購入できるほど安価である。
- ・標準的なプリンターで印刷できます
- ・幅広い種類のコンピュータで動作します
- ・APLにおける最新の考え方の簡潔さと汎用性を提供する
その結果はJ であり、[ APL 90 Conference Proceedings ]で最初に報告された。[ 114 ]
Roger Hui は、 J の実装の付録 A で、J が始まった最後のきっかけについて説明しています。[ 115 ]
1989年の夏のある週末、アーサー・ホイットニーはキルン・ファームのケン・アイバーソンを訪ね、AT&T 3B1コンピュータ上で、たった1ページ、たった1日の午後でインタプリタの断片を作成した。私はこのインタプリタの構成とプログラミングスタイルを約1週間研究し、1989年8月27日(日曜日)の午後4時頃、本書で説明する実装となる最初のコードを書いた。アーサーの1ページのインタプリタ断片は以下のとおりである。…
ホイットニーのアルバータ大学時代の同級生であるフイは、転職活動中に『A Dictionary of the APL Language』を研究し[4]、少なくとも2つの異なる方法で構文解析プロセスをモデル化し[ 85 ] 、さまざまなアプリケーションにおける辞書APLの使用法を調査した[ 116 ]。また、1987年1月から1989年8月までSAXにアクセスでき[ 77 ]、その期間の後半には日常的に使用していた[ 85 ] 。
J は当初、仕様としてAPL 辞書[ 87 ]を採用し、J インタプリタは辞書の表 2 を中心に構築されました。C のデータとプログラム構造は、C の構文解析表が辞書の構文解析表に直接対応するように設計されました。 [ 85 ] 振り返ってみると、Iverson の APL87 論文APL87 [ 107 ]は 5 ページで、APL インタプリタを作成するためのすべての重要な手順、特に単語形成と構文解析に関するセクションを規定していました。Arthur Whitney は、「1 ページのもの」に加えて、プリミティブを先頭軸に沿って配置すること、一致 (スカラー拡張の一般化) を接尾辞ではなく接頭辞にすること[ 117 ] 、および配列の完全な順序付けを定義すること[ 118 ]を提案することで、J の開発に貢献しました。
目的の一つは、フォークを実装することでした。これは、構文解析テーブルに行を一つ追加するだけで、かなり簡単に実現できました。フォークを実装するという選択は、偶然かつ幸運なものでした。フォークによって暗黙の式(演算子式)が次の意味で完全になることが後になって初めて認識されました。引数をオペランドとして使用しない、1つまたは2つの引数を含む任意の文は、フォーク、合成、左および右の恒等関数、および定数関数を使用して暗黙的に記述できます。
Jと他のAPL方言との明らかな違いは2つあります。(a) 数学やコンピュータサイエンスの用語ではなく、自然言語の用語を使用していること(この慣習は『APL辞書』から始まりました):配列、関数、演算子、文字セット、字句解析、式などではなく、名詞、動詞、副詞、アルファベット、語形成、文など。 (b) 特殊記号ではなく、7ビットASCII文字を使用していること。JとAPLのその他の違いについては、 『J for the APL Programmer』[ 121 ]および『APL and J』[ 122 ] に記載されています。
Jのソースコードは、GNU一般公衆利用許諾契約書バージョン3(GPL3)または商用版でJsoftwareから入手可能です。[ 123 ]
エリック・アイバーソンは、改良版のSHARP APL/PC製品を提供するために、1990年2月にIverson Software Inc.を設立しました。すぐに共通の関心と目標があることが明らかになり、1990年5月にアイバーソンとHuiがIverson Software Inc.に加わり、後にクリス・バークも加わりました。会社はすぐにJのみになりました。2000年4月に社名がJsoftware Inc.に変更されました。[ 85 ]

アイバーソンがアイバーソン・ソフトウェア社およびJソフトウェア社に在籍中に執筆または共著した出版物:
この種は、プログラミング言語 APL と J. を開発したカナダのコンピュータ科学者、Kenneth Eugene Iverson (1920–2004) にちなんで命名されました。