関連サイト
本書の関連ページが用意されています。
内容紹介
◆ベテランプログラマによるプログラミングの実践書
本書は、ベテランプログラマである著者たちが経験から学んだよりよいプログラムを作り、維持するための実践的なノウハウをまとめたものだ。個別のオペレーティングシステム、プログラミング言語、パラダイムなどにとらわれない普遍的な手法を開示している。
書誌情報
- 著者: Brian W. Kernighan, Rob Pike(著), 福崎俊博(訳)
- 発行日: 2017-01-30 (紙書籍版発行日: 2017-01-30)
- 最終更新日: 2017-01-30
- バージョン: 1.0.0
- ページ数: 360ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: アスキードワンゴ
対象読者
著者について
Brian W. Kernighan
Lucent Technologies 社ベル研究所の計算機科学研究センターに所属。Addison-Wesley 社のProfessional Computing シリーズの顧問を務める。Dennis Ritchie との共著に『プログラミング言語C』がある。
Rob Pike
Lucent Technologies 社ベル研究所の計算機科学研究センターに所属。オペレーティングシステムPlan 9 とInferno の開発で設計/実装リーダーを務めた。研究の中心テーマはソフトウェアをもっと簡単に書けるようにするためのソフトウェア。
福崎俊博
1958 年1 月生まれ、早稲田大学政治経済学部政治学科卒。1970 年代後半よりコンピュータに興味を持ち、独学でアセンブラ、Pascal、C によるプログラミングに手を染める。1985 年頃よりフリーランスのライター/翻訳者として活動。『ハッカーズ大辞典』(アスキー)、『sed & awk プログラミング』(オライリー・ジャパン)、『入門GNU Emacs 第2 版』(同)など訳書多数。興味のある分野はオペレーティングシステム、言語、Unix ツール。
目次
はじめに
第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 参考文献