Photo by Yuichiro Chino/gettyimages

クセがスゴすぎるプログラミング言語「APL」の摩訶不思議な記号

サイエンス365days

"サイエンス365days" は、あの科学者が生まれた、あの現象が発見された、など科学に関する歴史的な出来事を紹介するコーナーです。

特殊すぎてプログラムが入力できない…

1920年の今日、計算機科学者ケネス・アイバーソン(Kenneth Iverson、1920-2004)がカナダのアルバータ州に生まれました。

ノルウェー移民の子孫として生まれたアイバーソンは、家業の農業を手伝いながら独学で数学を学び、戦時中にカナダ空軍で大学入学資格を獲得、1954年にはハーバード大学で博士号を取得しました。

博士号取得後はハーバード大学の助教授となり、配列を数学的記法によって操作する手法(のちに「アイバーソン記法」と呼ばれる)を考案するなどの業績をあげましたが、在職権を更新できず大学を離れることになりました。

1960年には彼の実力を買ったIBMに移り、そこで「アイバーソン記法」をもとにしたプログラミング言語のAPLを開発しました。APLは配列の処理を柔軟に行えることに特徴があります。

また「APL記号」と呼ばれる特殊な計算記号を用いる言語で、たとえば

A⍟B

は「底をBとしたAの対数」を、

⌹B

は「行列Bの逆行列」を表します。これらの記号は入力することすら難しく、専用のキーボードなども開発されたそうです。

実際のコードの例は下記のようになり、普通のプログラミング言語とは全く異なる様がよくわかります。

life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

APLのコードを読解するのは簡単なことではなく、決して使いやすい言語ではありませんが、今でも熱狂的なファンが全世界に存在しています。

1979年に、アイバーソンはAPLの開発の功績をたたえられ、「計算機科学のノーベル賞」とも呼ばれるチューリング賞を受賞しました。

APLで使われる記号の例

関連記事