本书是计算机科学方面的经典名著,由计算机界极具影响力的两位专家Brian W. Kernighan和Rob Pike合著。书的内容围绕程序设计实践中的一系列问题展开,讲述对于程序员有共性的知识,以帮助各程序员写出更高效的程序。本书从排错、测试、性能、可移植性、设计、界面、风格和记法等方面,讨论了程序设计中既具有实际意义又具有广泛意义的思想、技术和方法。
本书值得每位梦想并努力成为程序员的人参考,值得每位计算机专业的学生和计算机工作者阅读,也适合作为程序设计高级课程的教材或参考书。
關於作者:
Brain Kernighan计算机科学家,曾与UNIX的缔造者Ken Thompson和Dennis Ritchie一起在贝尔实验室工作。他也是AWK和AMPL程序设计语言的共同作者。“K&R C”和“AWK”中的“K”都是指“Kernighan”。2000年起,他在普林斯顿大学计算机科学系任教授,并任本科部代表。
Rob Pike 软件工程师。他在贝尔实验室任职期间,作为UNIX小组成员参与开发了Plan 9和Inferno操作系统以及Limbo程序设计语言。目前他在Google公司工作,参与了Go和Sawzall程序设计语言的开发。
目錄:
目录
Chapter 1: Style 风格 1
1.1 Names 名字 3
1.2 Expressions and Statements 表达式和语句6
1.3 Consistency and Idioms 一致性和习惯用语10
1.4 Function Macros 函数宏17
1.5 Magic Numbers 幻数19
1.6 Comments 注释23
1.7 Why Bother? 为何要在风格方面费心 27
Chapter 2: Algorithms and Data Structures 算法与数据结构29
2.1 Searching 检索30
2.2 Sorting 排序32
2.3 Libraries 库34
2.4 A Java Quicksort 一个Java快速排序实现37
2.5 O-Notation 大O记法40
2.6 Growing Arrays 自增长数组41
2.7 Lists 表44
2.8 Trees 树50
2.9 Hash Tables 散列表55
2.10 Summary 小结 58
Chapter 3: Design and Implementation 设计与实现61
3.1 The Markov Chain Algorithm 马尔可夫链算法62
3.2 Data Structure Alternatives 在多种数据结构之间选择64
3.3 Building the Data Structure in C 使用C语言构建数据结构65
3.4 Generating Output 生成输出69
3.5 Java 71
3.6 C++ 76
3.7 Awk and Perl Awk和Perl 78
3.8 Performance 性能80
3.9 Lessons 经验教训82
Chapter 4: Interfaces 接口85
4.1 Comma-Separated Values 逗号分隔值86
4.2 A Prototype Library 一个原型库87
4.3 A Library for Others 一个