magazine.gifプログラミング作法

日本語版序文
はじめに

第1章 スタイル

  • 1.1 名前
  • 1.2 式と文
  • 1.3 一貫性と慣用句
  • 1.4 関数マクロ
  • 1.5 マジックナンバー
  • 1.6 コメント
  • 1.7 なぜ手間をかけるのか
  • 1.8 参考文献

第2章 アルゴリズムとデータ構造

  • 2.1 探索
  • 2.2 ソーティング
  • 2.3 ライブラリ
  • 2.4 Java版クイックソート
  • 2.5 O記法
  • 2.6 配列の伸張
  • 2.7 リスト
  • 2.8 ツリー
  • 2.9 ハッシュテーブル
  • 2.10 まとめ
  • 2.11 参考文献

第3章 設計と実装

  • 3.1 マルコフ連鎖アルゴリズム
  • 3.2 データ構造の選択
  • 3.3 Cによるデータ構造の作成
  • 3.4 出力の生成
  • 3.5 Java
  • 3.6 C++
  • 3.7 AwkとPerl
  • 3.8 性能
  • 3.9 教訓
  • 3.10 参考文献

第4章 インターフェイス

  • 4.1 カンマ区切り値
  • 4.2 プロトタイプライブラリ
  • 4.3 他人の使うライブラリ
  • 4.4 C++による実装
  • 4.5 インターフェイスの原則
  • 4.6 リソース管理
  • 4.7 中止しますか、再試行しますか、失敗させますか?
  • 4.8 ユーザーインターフェイス
  • 4.9 参考文献

第5章 デバック

  • 5.1 デバッグ
  • 5.2 有力な手がかりのある簡単なバグ
  • 5.3 手がかりのない困難なバグ
  • 5.4 最後の手段
  • 5.5 再現不能のバグ
  • 5.6 デバッグツール
  • 5.7 他人のバグ
  • 5.8 まとめ
  • 5.9 参考文献

第6章 テスト

  • 6.1 コーディング時のテスト
  • 6.2 系統的なテスト
  • 6.3 テストの自動化
  • 6.4 テスト機構
  • 6.5 ストレステスト
  • 6.6 テストのコツ
  • 6.7 誰がテストを担当するのか?
  • 6.8 マルコフプログラムのテスト
  • 6.9 まとめ
  • 6.10 参考文献

第7章 性能

  • 7.1 ボトルネック
  • 7.2 時間計測とプロファイリング
  • 7.3 高速化の戦略
  • 7.4 コードのチューニング
  • 7.5 メモリ効率
  • 7.6 性能の見積もり
  • 7.7 まとめ
  • 7.8 参考文献

第8章 移植性

  • 8.1 言語
  • 8.2 ヘッダとライブラリ
  • 8.3 プログラムの構成
  • 8.4 隔離
  • 8.5 データ交換
  • 8.6 バイト順
  • 8.7 移植性とバージョンアップ
  • 8.8 国際化
  • 8.9 まとめ
  • 8.10 参考文献

第9章 記法

  • 9.1 データの書式化
  • 9.2 正規表現
  • 9.3 プログラムブルツール
  • 9.4 インタープリタ、コンパイラ、仮想マシン
  • 9.5 プログラムを記述するプログラム
  • 9.6 マクロによるコード生成
  • 9.7 オンザフライコンパイル
  • 9.8 参考文献

エピローグ
Appendix ルール表
索引