1. Style.
Names. Expressions and Statements. Consistency and Idioms. Function
Macros. Magic Numbers. Comments. Why Bother?
2. Algorithms and Data Structures.
Searching. Sorting. Libraries. A Java Quicksort. O-Notation.
Growing Arrays. Lists. Trees. Hash Tables. Summary.
3. Design and Implementation.
The Markov Chain Algorithm. Data Structure Alternatives. Building
the Data Structure in C. Generating Output. Java. C++. Awk and
Perl. Performance. Lessons.
4. Interfaces.
Comma-Separated Values. A Prototype Library. A Library for Others.
A C++ Implementation. Interface Principles. Resource Management.
Abort, Retry, Fail? User Interfaces.
5. Debugging.
Debuggers. Good Clues, Easy Bugs. No Clues, Hard Bugs. Last
Resorts. Non-reproducible Bugs. Debugging Tools. Other People's
Bugs. Summary.
6. Testing.
Test as You Write the Code. Systematic Testing. Test Automation.
Test Scaffolds. Stress Tests. Tips for Testing. Who Does the
Testing? Testing the Markov Program. Summary.
7. Performance.
A Bottleneck. Timing and Profiling. Strategies for Speed. Tuning
the Code. Space Efficiency. Estimation. Summary.
8. Portability.
Language. Headers and Libraries. Program Organization. Isolation.
Data Exchange. Byte Order. Portability and Upgrade.
Internationalization. Summary.
9. Notation.
Formatting Data. Regular Expressions. Programmable Tools.
Interpreters, Compilers, and Virtual Machines. Programs that Write
Programs. Using Macros to Generate Code. Compiling on the Fly.
Epilogue.
Appendix: Collected Rules.
Index. 020161586XT04062001
Brian W. Kernighan works in the Computing Science Research Center
at Bell Laboratories, Lucent Technologies. He is Consulting Editor
for Addison-Wesley's Professional Computing Series and the author,
with Dennis Ritchie, of The C Programming Language. Rob Pike
works in the Computing Science Research Center at Bell
Laboratories, Lucent Technologies. He was a lead architect and
implementer of the Plan 9 and Inferno operating systems. His
research focuses on software that makes it easier for people to
write software.
020161586XAB04062001
![]() |
Ask a Question About this Product More... |
![]() |