ビジネス WinDbg入門 Windowsカーネル分析ノート


連載の目的と学習範囲

 本連載は「C++の学び方(実践編)」というタイトルを持ち、閲覧対象者層をかなり広めに設定しています。そこでまず、本連載の目的と学習範囲を次のように整理しておきます。

 現在のソフトウェア業界は、C++設計思想の影響を受けている。本連載では、単純なソースコードを示しながら、C++の設計思想を紹介する。

 現役プログラマの方は、"自分は実装工程に興味があるのだから、別段、C++設計思想などを学ぶ必要はない!"と判断してしまう傾向があります。筆者はその傾向を非難しませんが、多少の注意も必要です。

 C++プログラミング自体に夢中になっている段階では、C++の設計思想を知りたいなどと当然考えないものです。"C++設計思想などの座学的な学習は退屈であり、オーバーヘッドである!"、と映っているはずです。プログラミングを覚えたての頃は、コードを書き、それを実行することが楽しくて楽しく仕方がないものです。

 ここで興味ある話を一つ紹介しておきます。C++設計者のBjarne Stroustrup氏は、1994年に出版した書籍「The Design and Evolution of C++」(D&E)の中で、次のような発言を行っています。

Syntax matters(often in perverse ways)

 この文の真意は、次のようなものです。

 "C++構文を学ぶことは重要であるが、それ以上に、C++設計思想を学んでほしい!"

 すべてのC++構文は重要な意味を持っています。ところが、構文によっては、複雑怪奇な姿をしているものもあります。分かりにくい、醜い構文、というわけです。Stroustrup氏は、その醜さは結果的に偶然そうなったのではなく、自分が意図的にそのようにした(つまり、設計した)、と述べています。

 C++構文の「醜さ」は重要な意味を持っています。自分の書いたコードを後日改めて眺めているとき(コードレビュー)、醜いコードに自然に視線が向きます。これは、「醜いコードは人の注意を引き付ける」という重要な役割を持っていることを意味します。このあたりの事情に興味のある方は、この記事を精読されるとよいでしょう。醜さは赤い危険信号のようなものなのです。

本連載がカバーする学習範囲。それは次のようなものです。

・C++は"ベターC"であることを説明する。
・C++の"データ抽象化機能"を説明する。

 C++とはそもそもどのような言語なのか。CとC++はどのような関係にあるのか。そして、どのような違いがあるのか。本連載では、言葉ではなく、単純なソースコードを分析しながら、C++の設計思想に触れていただきます。

前へ | 次へ



 WinDbgアプリケーション開発独習講座  ホーム


Copyright©豊田孝 2004- 2008
本日は2008-11-22です。