妻札幌から帰る・C++ の本

妻が札幌から帰ってきた。北大構内,大通り公園,すすきの,下宿のあった北19条近辺など,学生時代の懐かしい場所を散歩してきたらしい。羨ましい。北大クラーク会館のすぐ裏手の,私が住んでいた北6条西8丁目付近は JR の高架化で様変わりしていたという。お土産は懐かしい六花亭のマルセイバターサンド。

今日の晩ご飯は私がビーフシチューを拵えた。肉が足りないので近所のマルエツにお買い物。肉売り場では「好き好きお肉! 好き好き!」という歌が何度も何度も繰り返され,なかなかシチュー用のバラ肉を見つけられなかった私は,チョーイライラ(子供達によれば,この肉屋の歌は元モー娘。・石川梨華のものだそうである)。肉のついでに,安物 780 円のカリフォルニアワインもゲット。シチューは子供たちにも評判だった。

昼は,ロシア人からのメールへの返信文を書いた。北園克衛詩ロシア語訳の問題点をいくつか指摘して,LaTeX で作成した PDF を添付送信した。

* * *

Lemmatizer ライブラリを使った lemmatized コンコーダンスプログラムを設計中。私は O'Reilly から出た G. Satir, D. Brown による入門書で C++ をさらった程度で,この機会にもう少しきちんと勉強しなくちゃとさらに一冊 C++ 本を購入した。柏原正三『美しい C++ プログラミング見本帖』(翔泳社,2004年)。私は C++ のプログラムを何本も書いたけれど,「クラス・型の実装を強化した C」程度に C++ を扱っていた。オブジェクト指向云々も Java ほど気にする必要を感じなかった。それでも動く C++ プログラムが作れるわけである。

本書は C と C++ はまったく別のプログラミング言語であると強く主張する。 printf などの C の標準ライブラリ関数を使ってはいけない,プリプロセッサの #define による記号定数を使ってはいけない,などなど,私にとってびっくりするような指南がなされている。それが「美しい」ということか。でも,ちょっと納得のいかない点もある。

問題は,fprintf( ) 関数が C の入出力ストリームの関数であることです。C++ は C++ 独自の入出力システムとして入出力ストリームをサポートしていますが,それが C の入出力システムの関数と整合するという保証はありません。
柏原正三『美しい C++ プログラミング見本帖』翔泳社,2004年,p. 20.

「整合しない」例をどうして示してくれないの? このため,問題点の問題点たる所以がどこにあるのか,さっぱりわからないのである。C++ が C とは異なる言語だという考え方は正しい。でも,C++ の設計者は C++ を C のスーパーセットと位置付けているのではなかったか。やはり,ソフトウェアに関する日本人の著作は,米国人の足元にも及ばない,と思ってしまった。米国人なら「必ず」,きちんと具体例をあげ己れの命題の根拠を説明する。

まあ,それでも C に凝り固まった私にはこれくらい刺激的なことを言ってくれる本がよいのかも知れない。上記のような納得できない点もあるにせよ,C との違いを懇切に説明してくれる本である。

C++プログラミング入門
グレゴリー・サティア,ダウグ・ブラウン
オライリー・ジャパン