The Practice of Programming (Addison-Wesley Professional Computing Series)
Publisher: Addison-Wesley Professional
Published: February 4, 1999
Language: eng
Format: Paperback
Number of pages: 288
ISBN-13: 9780201615869
Copyright date: 1999
First sentence: This fragment of code comes from a large program written many years ago:
Description: A compendium of practical matters of importance to working programmers.
Table of contents: title: Preface
pagenum: ix; label: 1
title: Style
pagenum: 1; label: 1.1
title: Names
pagenum: 3; label: 1.2
title: Expressions and Statements
pagenum: 6; label: 1.3
title: Consistency and Idioms
pagenum: 10; label: 1.4
title: Function Macros
pagenum: 17; label: 1.5
title: Magic Numbers
pagenum: 19; label: 1.6
title: Comments
pagenum: 23; label: 1.7
title: Why Bother?
pagenum: 27; label: 2
title: Algorithms and Data Structures
pagenum: 29; label: 2.1
title: Searching
pagenum: 30; label: 2.2
title: Sorting
pagenum: 32; label: 2.3
title: Libraries
pagenum: 34; label: 2.4
title: A Java Quicksort
pagenum: 37; label: 2.5
title: O-Notation
pagenum: 40; label: 2.6
title: Growing Arrays
pagenum: 41; label: 2.7
title: Lists
pagenum: 44; label: 2.8
title: Trees
pagenum: 50; label: 2.9
title: Hash Tables
pagenum: 55; label: 2.10
title: Summary
pagenum: 58; label: 3
title: Design and Implementation
pagenum: 61; label: 3.1
title: The Markov Chain Algorithm
pagenum: 62; label: 3.2
title: Data Structure Alternatives
pagenum: 64; label: 3.3
title: Building Data Structures in C
pagenum: 65; label: 3.4
title: Generating Output
pagenum: 69; label: 3.5
title: Java
pagenum: 71; label: 3.6
title: C++
pagenum: 76; label: 3.7
title: Awk and Perl
pagenum: 78; label: 3.8
title: Performance
pagenum: 80; label: 3.9
title: Lessons
pagenum: 82; label: 4
title: Interfaces
pagenum: 85; label: 4.1
title: Comma-Separated Values
pagenum: 86; label: 4.2
title: A Prototype Library
pagenum: 87; label: 4.3
title: A Library for Others
pagenum: 91; label: 4.4
title: A C++ Implementation
pagenum: 99; label: 4.5
title: Interface Principles
pagenum: 103; label: 4.6
title: Resource Management
pagenum: 106; label: 4.7
title: Abort, Retry, Fail?
pagenum: 109; label: 4.8
title: User Interfaces
pagenum: 113; label: 5
title: Debugging
pagenum: 117; label: 5.1
title: Debuggers
pagenum: 118; label: 5.2
title: Good Clues, Easy Bugs
pagenum: 119; label: 5.3
title: No Clues, Hard Bugs
pagenum: 123; label: 5.4
title: Last Resorts
pagenum: 127; label: 5.6
title: Non-reproducible Bugs
pagenum: 130; label: 5.7
title: Other People's Bugs
pagenum: 135; label: 5.8
title: Summary
pagenum: 136; label: 6
title: Testing
pagenum: 139; label: 6.1
title: Test as You Write the Code
pagenum: 140; label: 6.2
title: Systematic Testing
pagenum: 145; label: 6.3
title: Test Automation
pagenum: 149; label: 6.4
title: Test Scaffolds
pagenum: 151; label: 6.5
title: Stress Tests
pagenum: 155; label: 6.6
title: Tips for Testing
pagenum: 158; label: 6.7
title: Who Does the Testing?
pagenum: 159; label: 6.8
title: Testing the Markov Program
pagenum: 160; label: 6.9
title: Summary
pagenum: 162; label: 7
title: Performance
pagenum: 165; label: 7.1
title: A Bottleneck
pagenum: 166; label: 7.2
title: Timing and Profiling
pagenum: 173; label: 7.3
title: Strategies for Speed
pagenum: 175; label: 7.4
title: Tuning the Code
pagenum: 178; label: 7.5
title: Space Efficiency
pagenum: 182; label: 7.6
title: Estimation
pagenum: 184; label: 7.7
title: Summary
pagenum: 187; label: 8
title: Portability
pagenum: 189; label: 8.1
title: Language
pagenum: 190; label: 8.2
title: Headers and Libraries
pagenum: 196; label: 8.3
title: Program Organization
pagenum: 198; label: 8.4
title: Isolation
pagenum: 202; label: 8.5
title: Data Exchange
pagenum: 203; label: 8.6
title: Byte Order
pagenum: 204; label: 8.7
title: Portability and Upgrade
pagenum: 207; label: 8.8
title: Internationalization
pagenum: 209; label: 8.9
title: Summary
pagenum: 212; label: 9
title: Notation
pagenum: 215; label: 9.1
title: Formatting Data
pagenum: 216; label: 9.2
title: Regular Expressions
pagenum: 222; label: 9.3
title: Programmable Tools
pagenum: 228; label: 9.4
title: Interpreters, Compilers, and Virtual Machines
pagenum: 231; label: 9.5
title: Programs that Write Programs
pagenum: 237; label: 9.6
title: Using Macros to Generate Code
pagenum: 240; label: 9.7
title: Compiling on the Fly
pagenum: 241; title: Epilogue
pagenum: 247; title: Appendix: Collected Rules
pagenum: 249; title: Index
pagenum: 253