「Simula + C」はC++?
Bjarne Stroustrup氏(Mr.BS)のインタービュー記事を読む連載第2回目の今回は、前回に引き続き次の公開記事を読みます。
1996年3月25日インタービュー記事(新リンク先)
本日は、公開記事内の次の質問へのMr.BS回答を詳しく検討してみることにします。
・Did your involvement with object-oriented programming start in Aarhus?
この質問は、オブジェクト指向プログラミングとMr.BSとの出会いについて尋ねています。
オブジェクト指向プログラミングは、英語ではObject-Oriented Programmingと表現され、通常、OOPなどと略記されています。この"Object-Oriented"に対応する用語として、Procedure-Oriented(手続き指向)やMachine-Oriented(マシン指向)、あるいは、System-Oriented(システム指向)という用語が使われることがあるようです。ここでは、オブジェクト指向プログラミング(OOP)というのは、マシン性能を意識するプログラミング(低レベルプログラミング)ではなく、そのマシンを使用する人間の創造性や夢を優先する考え方である、と理解しておきます。実際、この質問者自身がオブジェクト指向やオブジェクト指向プログラミングを理解しているかどうかかなり怪しいところです。
語学的に面白いと思われる点を1つ説明しておきましょう。質問文をじっと見ると分かるように、この文は人間ではなく、involvementという抽象的な名詞で始まっています。英語、特に、Mr.BSの英語は、人間以外の名詞で始まる文章が多く、それゆえ、"難しい!"といわれています。次のような2つの英文を読み比べてみてください。
・I did not sleep last night.
・Sleep did not come to me last night.
第2文は、人間以外の名詞で始まっています。日本語を母国語とする私たちにはかなり発想的に難しいのですが、文構成自体は、きわめて素朴で、論理的な感じがします。素朴で論理的な英語は、素朴(その文化の必須要素の一つ)であるがゆえに、日本語化作業(わが国への文化的な輸入)は難解を極めます。さらにいえば、Mr.BSは現実をとても重視しますから、同氏の現実と私たちの現実が部分的にすりあわないことも予想されます(このため、同氏の考えを理解するのは難しい、となります)。
質問文内に登場するAarhusというのは、Mr.BSが生まれたデンマークの故郷の町の名前です。この質問は、簡単に言ってしまえば、(英国や米国ではなく)まだ生まれ故郷のAarthusにいた頃にオブジェクト指向プログラミングに目覚めたのですか、と尋ねているわけです。
オブジェクト指向そのものの説明はこの連載に譲り、ここでは、オブジェクト指向が、デンマークと同じ北欧の国の一つであるノルウェーで誕生していることを覚えておきましょう。
デンマーク製コンピュータは、オブジェクト指向発祥の地であるノルウェーのコンピュータ産業発展の歴史の中で大変重要な役割を果たしています。オブジェクト指向の父と呼ばれることもある、ノルウェー人Kristen Nygaard氏もデンマーク製のコンピュータを使用したと述べています(そして、それは我が国のコンピュータの発展を遅らせた、と悔しがっています。もしかしたら、国産ではなく、隣国デンマークのコンピュータを使用せざるを得ない事実はプライドの高いNyaard氏にとってはかなり屈辱的だったのかもしれません)。当時の2つの国のコンピュータ性能を比較した場合、デンマーク製コンピュータ(GIERという製品名だったようです)の方が一歩進んでいたようです。
Mr.BSは、故郷Aarhusで数週間Simulaを使用し、英国Cambridge大学入学後に本格的に学習したと述べています。Mr.BSがSimulaを研究したのはこのように事実のようですが、残念ながら、Simulaだけでは、目的のソフトウェアを開発することはできなかったようです。最終的には、渡米(1979)後のプログラミング言語「C」との出会いが大きかったと述べています(Mr.BSが最初にCとであったのは1975年ですが、当時はCをそれほど知らなかったと述べています)。「C」とは、Dennis Ritchie氏とBrian Kernighan氏が共同開発したアメリカ製のプログラミング言語です。
Mr.BSは、この「C」と「Simula」を統合する形でプログラミング言語C++を作り出したわけですが、その過程では、"Cのよさを継承する"姿勢を強く打ち出しています。(概念の設計と表現に優れている)Simulaにはない、Cの低レベルプログラミング機能(優れた実装効率)には相当感動したものと想像されます。本日は、Mr.BSは1979年に渡米し、その翌年、後に「国際標準C++」の基礎となる"C with Classes"(CとSimulaの統合言語)を発表している事実を確認しておきます。
"C with Classes"は、現在の「標準C++」に対して、"初期のC++"と呼ばれることがあります。これは、1980年当時の"C with Classes"は発展途上の言語であったことを示しています。事実、Mr.BSは、"初期のC++に精通しているプログラマは、現在の標準C++をきちんと学ぶ必要がある"、と繰り返し述べています。すでに触れたように、プログラミング言語C++は、Mr.BSの世界観を表現したものですから、自分の世界観の正確な表現には時間が必要です。さらにいえば、自分の世界観を整理している過程で、自分自身が当然成長します。その成長は、プログラミング言語C++の成長を意味します。Mr.BSは、1994年に「The Design and Evolution of C++」を出版していますが、この「D&E」出版を境に、同氏の主張内容は安定し、魅力が増している印象を筆者は強く受けています。
プログラミング言語C++はオブジェクト指向言語である、とよくいわれます。Mr.BSはこの表現を無条件で受け入れるわけではありませんが、(北欧の小さな国ノルウェーで誕生した)オブジェクト指向という考え方と、経済大国アメリカで生まれたプログラミング言語Cの考え方を融合し、新しい言語であるC++を作り出したことは間違いないところでしょう。2つの異なる国で誕生した2つの異なる考え方を融合し、新しい言語を作り出す作業ですが、Mr.BSは時間的には渡米後1年という短期間で(不完全ながら)成し遂げています(歴史的にはこのような表現が可能なのですが、実際にはいろいろなプログラミング言語を使用・研究し、多くの経験を積んでいます)。次回は、このように誕生したC++のその後を追います。
前へ |
次へ
Copyright©豊田孝 2004-
2008
本日は2008-12-04です。