ビジネス WinDbg入門 アクティブなスレッドと非アクティブなスレッド


プログラミング言語C++の進化と教養

 「C++プログラミング言語の歴史と特徴」連載第5回目の今回も、前回に引き続き次の公開論文を精読していきます。

第1回連載資料論文

 本日は、「2 The Design and Evolution of C++」節の第2段落の意味を考えてみます。この段落では、次のようなことが述べられています。

・C++が普及するにつれさまざまなC++方言(実装コンパイラ)が乱立するようになった。
・方言の乱立は好ましいことではないため、1990年からANSIで標準化作業が開始された。
・1990年に開始された標準化作業は、1998年に正式に標準C++仕様として承認された(関連記事)。
・私(Bjarne Stroustrup)は、標準C++の仕様策定過程では積極的な役割を果たした。
・標準C++は、初期のC++である"C with Classes"より優れている。
・C++の設計と進化の背景は、1994年発行された「The Design and Evolution of C++」に詳しく記述されている。
・標準C++の詳しい仕様は、1997年発行の「The C++ Programming Language」に記述されている。

 さて皆さん、ここに示したリストを眺めてどのようなことをお感じになりますか?筆者は、次のようなことをまず感じないわけにいきませんでした。

 "我が国でC++を熟知しているのは少数の人々である。理由は簡単である。「The Design and Evolution of C++」書は発行後10年以上経過した2005年になってやっと日本語に翻訳された状態であり(2005年1月訳書刊行)、その上、「The C++ Programming Language」は訳出されているにしても優に800ページを超える分量である。これらの2冊を読破した人は限られているはずである"

 正直に言えば、「The C++ Programming Language」を読破していない人は、"C++を知らない"といってよいと思います。確かに、Bjarne Stroustrup氏は、C++のすべてを知らなくともC++コードを記述できる、と述べています。しかし、それには条件が付きます。その条件とは何でしょうか?それは、名前空間、です。本日は、名前空間について詳しい説明はいたしませんが、筆者個人は、名前空間を知らない限り、C++はおろか、JavaやC#などの新しい言語の世界も理解できるはずはない、と考えている一人です。現時点では信じられないでしょうが、名前空間を知り、それを応用できるようになると、プログラミング作業が断然楽しくなります。

 筆者が2番目に感じたことは、Bjarne Stroustrup氏のC++への限りない愛情です。次回から本格的に説明することなのですが、Stroustrup氏は明確なC++設計指針を持っています。おそらく、標準化過程では、その指針が破られないようにかなり神経を使われたはずです。「The Design and Evolution of C++」の前半部には、"自分は観念論者ではなく、プラグマティストであり、経験主義者である"、という記述があります。そして、"一握りの開発者に役に立つ言語ではなく、より多くの、平均的な開発者に役に立つ言語を設計した"、とも述べています。"なるほど!"と、思わずうなってしまうほどの文章が散見されますから、「The Design and Evolution of C++」を一度は精読されることをお勧めいたします。筆者はこれまで数回読んでいますが、読むたびに感動を新たにしています。プログラミング言語C++の世界は、歴史や哲学などの基礎教養をしっかり含んでいます(それゆえ、C++はStroustrup氏の人生観や世界観の表現といえます)。

 本連載では、プログラミング言語の基礎概念や、言語設計者の人柄などを時間をかけてじっくり読んでいきます。このアプローチは、皆さんのコーディング能力を日々向上させるというわけにはまいりません。現在のコーディング能力を少しでも改善したいと考えておられる方は、ここで紹介しているチュートリアルやソースコードを時折ダウンロードし、多少時間をかけて検討してみるとよいと思います。もちろん、C++入門書を1冊購入し、書籍内に含まれているサンプルコードを検討するのもよいでしょう。本連載の回数が進むにつれ、ソースコードを見る皆さんの視点はかなり変わっていくはずです。なお、書籍やチュートリアルのソースコードを隅から隅まで理解できる必要はありません。分かるところだけをしっかり理解する姿勢で臨んでください。

前へ | 次へ



 WinDbgスクリプティング講座  ホーム


Copyright©豊田孝 2004- 2008
本日は2008-12-04です。