まつもとゆきひろ氏が語る「言語の世界」の過去・現在・未来

EnterpriseZine / 2012年3月5日 7時0分

満席の「デブサミ2012」会場で講演する、まつもと ゆきひろ氏

世の中にはすでに数多くのプログラミング言語が存在するのに、なぜ新たな言語が次々と生まれるのか。それは時代とともに必要とされる言語もまた変わっていくから、そして何より楽しいからだ。― 「Developer Summit 2012」(通称、デブサミ)の2日目に登壇したプログラミング言語「Ruby」の生みの親、世界の"Matz"ことまつもとゆきひろ氏による「言語の世界」の内容を紹介する。

■FORTRAN vs. LISPではじまった言語の歴史

 そもそもプログラミング言語とは何なのか。セッションの冒頭、まつもと氏はこの本質的な問いに対し、以下2つの異なる定義を示した。

その1 :プログラム=手順書・手順書記述用人工言語

その2  :プログラム=理想記述・思考表現用人工言語

 その1を"機械のため"とするなら、その2は"人間のため"の定義となる。機械が理解できるように手順を記述するのか、それとも達成したい理想を人間にわかる言葉で記述するのか。まつもと氏は「機械のためか人間のためか、せめぎあう2つの立場が交錯してきたのがプログラミング言語の歴史」とする。
満席の「デブサミ2012」会場で講演する、まつもと ゆきひろ氏

 その立場の違いが際立つのが、プログラミング言語が登場したばかりの1950年代に見られる"FORTRAN vs. LISP"という構図だ。いずれも機械と人間という2つの立場をそれぞれのやり方で取り入れた言語である。

 1954年に誕生した世界初の高級言語、人間にわかる言葉=数式でプログラムできるように開発されたFORTRAN(FORmula TRANSlator)は、ループアンローリングやベクトル化を取り入れ、"速く計算する"ということにこだわった。その時代背景にはコンピュータが非常に遅かったという事情がある。しかし、当時、言語の常識がまだ存在しなかったこともあり、「スペースを全部落とすなど、"人間のため"という点では未熟な部分が多かった」(まつもと氏)という。

 一方、1958年に誕生したLISP(LISt Processor)は"人間のため"がFORTRANより向上している。ラムダ計算を理論的基盤とした数学的概念からスタートしたLISPは、IBM 704計算機上で実装されたため、そのレジスタを構成するcar(content of adress part of register)とcdr(content of decrement part of register)が、LISPの基本的関数の名前として現在も使われている。また、Javaでおなじみのガベージコレクタを生み出したのもLISPである。

EnterpriseZine

トピックスRSS

ランキング