マルコム・ダグラス・マキロイ(1932年生まれ)は、アメリカの数学者、エンジニア、プログラマーです。2019年現在、ダートマス大学のコンピュータサイエンスの非常勤教授を務めています。マキロイは、 Unixパイプラインを最初に提案し、echo、spell、diff、sort、join、graph、speak、trなどのUnixツールを開発したことで最もよく知られています。[ 1 ]また、マクロプロセッサとプログラミング言語の拡張性の先駆的な研究者の一人でもありました。彼は、特にPL/I、SNOBOL、ALTRAN、TMG、C++など、複数の影響力のあるプログラミング言語の設計に参加しました。
ソフトウェアのコンポーネント化[ 2 ]とコードの再利用[ 3 ] [ 4 ]に関する彼の先駆的な研究は、彼をコンポーネントベースのソフトウェアエンジニアリングとソフトウェアプロダクトラインエンジニアリングのパイオニアにしています。
マキロイはコーネル大学で工学物理学の学士号を取得し[ 5 ]、 1959年にMITで応用数学の博士号を取得した。博士論文のタイトルは「円錐殻の微分方程式の解法について」(指導教官はエリック・ライスナー)である[ 6 ] 。 彼は1954年から1958年までMITで教鞭を執った[ 5 ]。
マキロイは1958年にベル研究所に入社し、1965年から1986年まで同研究所のコンピューティング技術研究部門(Unixオペレーティングシステムの誕生地)の責任者を務め、その後は技術スタッフの特別会員となった。[ 5 ]
1967年から1968年にかけて、マッキルロイはオックスフォード大学の客員講師も務めた。[ 5 ]
1997年、マッキルロイはベル研究所を退職し、ダートマス大学コンピュータサイエンス学科の非常勤教授の職に就いた。[ 5 ]
彼は以前、Association for Computing Machineryで全国講師、チューリング賞委員長、出版企画委員会のメンバー、Communications of the ACM、Journal of the ACM、ACM Transactions on Programming Languages and Systems の副編集長を務めた。また、 CSNETの執行委員会にも参加した。[ 5 ]
McIlroy はマクロプロセッサの先駆者と考えられています。[ 7 ] [ 8 ] [ 9 ] 1959 年、ベル研究所の Douglas E. Eastwood と共に、彼は人気のSAPアセンブラに条件付きマクロと再帰マクロを導入し、[ 10 ] Macro SAP として知られるものを作成しました。[ 11 ] 1960 年の彼の論文は、マクロプロセッサを介してあらゆる (高水準) プログラミング言語を拡張する分野でも画期的なものでした。 [ 7 ] [ 10 ] これらの貢献により、ベル研究所でマクロ言語の伝統が始まりました (「L6 や AMBIT から C まで」)。[ 12 ] McIlroy のマクロ処理のアイデアは、 TRACマクロプロセッサの主なインスピレーションにもなりました。[ 13 ]
彼はまた、FORTRAN IVの M6 マクロプロセッサを共同執筆しました[ 14 ]。これはALTRAN [ 15 ]で使用され、後にUnix の初期バージョンに移植され、組み込まれました[ 16 ]。
1960年代から1970年代にかけて、マキルロイはMultics ( RUNOFF [ 17 ]など)やUnixオペレーティングシステム( diff、echo、tr、join、look [ 16 ]など)向けのプログラムを提供し、これらのバージョンはPOSIX標準とUnixライクなオペレーティングシステムの採用により今日まで広く普及している。彼はUnixパイプラインの概念を導入した。[ 17 ]また、彼はPDP-7およびPDP-11アセンブリ言語でTMGコンパイラコンパイラを実装し、これはUnix上で動作する最初の高水準プログラミング言語となり、ケン・トンプソンのBプログラミング言語[ 17 ]やスティーブン・ジョンソンのYaccパーサージェネレータ[ 18 ]の開発を促し、影響を与えた。
マキロイはまた、デニス・リッチーからUnixマニュアルの編集を引き継ぎ、「愛情を込めて」作業を行った。特に、彼はUnixバージョン7のマニュアルページの第1巻を編集した。[ 19 ]サンディ・フレイザーによれば、「マニュアルが存在したこと、そして彼(マキロイ)がマニュアルに高い水準を求めたことは、文書化されたすべてのプログラムに高い水準を求めたことを意味する」とのことである。[ 20 ]
McIlroy はSNOBOLプログラミング言語の設計と実装に影響を与えた。彼の文字列操作マクロは 1962 年の初期の SNOBOL 実装で広く使用され、その後の作業で重要な役割を果たし、最終的にはマシン非依存の実装言語 SIL につながった。テーブル型 (連想配列) は、1969 年に McIlroy の強い要望によりSNOBOL4に追加された。[ 21 ]
1960年代、彼はPL/Iプログラミング言語の設計に参加した。[ 4 ] [ 22 ]彼は言語を設計したIBM - SHARE委員会のメンバーであり[ 23 ] 、 Robert Morrisと共にMulticsプロジェクトのためにTMGでEarly PL/I (EPL)コンパイラを作成した。[ 24 ] [ 25 ]
1965年頃、マッキルロイはW.スタンレー・ブラウンと共に、IBM 7094コンピュータ用のALTRANプログラミング言語のオリジナルバージョンを実装した。[ 15 ] [ 10 ]
McIlroyはプログラミング言語C++の設計にも大きな影響を与えた(例えば、ストリーム出力演算子を提案した<<)。[ 26 ]
1990年代、マキロイはソート技術の改善に取り組み、特にジョン・ベントレーと共同で最適化されたqsortを開発した。[ 27 ]
1969年、彼はグラフ内のすべての全域木を生成する効率的なアルゴリズムに貢献した(これは1965年にジョージ・J・ミンティによって最初に発見された)。[ 10 ] [ 28 ]
1995年、彼は米国科学振興協会のフェローに選出された。[ 29 ] 2004年には、USENIX生涯功労賞(「ザ・フレイム」)[ 30 ]とソフトウェアツールユーザーグループ(STUG)賞の両方を受賞した。[ 1 ] 2006年には、米国工学アカデミーの会員に選出された。[ 31 ]
マキロイは「プログラミングの真のヒーローはネガティブコードを書く人だ」[ 32 ]という言葉を残したとされているが、ネガティブコードの意味は、有名なアップル開発者ビル・アトキンソンのチームの逸話[ 33 ]と同様である(つまり、プログラムのソースコードの変更によってコード行数が減少し(「ネガティブ」コード)、全体的な品質、可読性、または速度が向上する場合)。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)