ホーム > 読んだ >

エキスパートCプログラミング
??知られざるCの深層

書誌

tagC
authorPeter van der Linden
editor梅原系(訳)
publisherアスキー出版局
year1996
price3,107+tax
isbn7561-1639-6

目次

1感想
2抄録

履歴

editor唯野
2001.7.5読了
2001.7.6公開
2002.11.29修正

文字通り C の上級書で、オブジェクトファイルやスタックの構造といった低レベルな話題にまで言及した本。実はもっと以前より購入済でパラパラと読んではいたのだが、じっくり読み通す時間がなく、すっかり後回しにしてしまっていた一冊である。それだけに「読みたくて読めないときがある以上、読めるときに読んでおく」ということの重要性を痛感しながら読んだ本でもあった。なぜなら、そうでないと「読まねばならないのに読んでない」本ばかり増えるという自明の結果を招くだけだからである。

内容に関しては割と定評のある本であるし、仮に問題があったとしても「自分から見当ぐらいはつく」という人がそもそもの想定する読者となる本なので、いずれにしても問題とはならない。あえていえば 11 章の C++ 入門はあくまでも概要レベルなので期待し過ぎてはいけないという程度である。それよりも類書の扱わないような話題にまで踏み込む一方で、様々な雑学的話題までふんだんに盛り込まれており、特に肩肘を張らない出来となっているのがすばらしいと思う。(個人的には「プログラミングのタオ」</a> が爆笑ものである。)また、そもそも C が高級言語というより高級アセンブラであるということも、本書で紹介されている C の成り立ちであるとか内情を読むことで自然に納得できるだろう。もっと、この手の本が増えてくれればコンピュータの専門書への敷居も低くなるのにな??と思った。

抄録

23

if(3 == i) などというように定数を先に書いておくと代入との書き間違いを避けることができる。(その時点でコンパイルエラーにできる。)

28

#include <stdio.h>
#include <time.h>

int main()
{
    time_t biggest = 0x7FFFFFFF;

    // ctime は現地時刻を gmtime は世界標準時を返す
    // そして asctime で文字列化している
    printf("biggest = %s\n", asctime(gmtime(&biggest)));
    return 0;
}

31-35

Multics プロジェクトの失敗に幻滅した Ken Thompson と同僚の Dennis Ritchie は 1969 年、PDP-7 に軽くて軽快な OS を搭載させる。これは全てアセンブラで書かれ、Brian Kernighan によって UNIX と名付けられた。(これが 1970 年のことなので、UNIX 時間は 1970 年 1 月 1 日から始まる。)しかし、メンテナンス性を得るために高級言語での OS の記述をしたかった Thompson は BCPL のサブセットである B という新しい言語(インタプリタ)を作成する。B は配列参照を「ポインタ + オフセット」とするような C との共通点も持っていたが型がなかった。Dennis Ritchie は PDP-11 上で型などをサポートする高性能な B を作り、これが C になった。

全文を読まれる場合はログインしてください


Up