《编程珠玑(续)(修订版)》目录—导读

    xiaoxiao2024-05-08  8

    内容提要 编程珠玑(续)(修订版) 本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。本书延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。本书对各个层次的程序员都具有很高的阅读价值。

    版权声明编程珠玑(续)(修订版)Authorized translation from the English language edition, entitled More Programming Pearls: Confessions of a Coder, 0201118890 by Jon Bentley, published by Pearson Education, Inc., publishing as Addison Wesley, Copyright © 1988 by AT&T Bell Laboratories.

    All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

    CHINESE SIMPLIFIED language edition published by PEARSON EDUCATION ASIA LTD. and POSTS & TELECOM PRESS Copyright © 2015.

    本书中文简体字版由Pearson Education Asia Ltd.授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。

    本书封面贴有Pearson Education(培生教育出版集团)激光防伪标签,无标签者不得销售。

    版权所有,侵权必究。

    译者序编程珠玑(续)(修订版)本书作者Jon Bentley是美国著名的程序员和计算机科学家,他于20世纪70年代前后在很有影响力的《ACM通讯》(Communications of the ACM)上以专栏的形式连续发表了一系列短文,成功地总结和提炼了自己在长期的计算机程序设计实践中积累下来的宝贵经验。这些短文充满了真知灼见,而且文笔生动、可读性强,对于提高职业程序员的专业技能很有帮助,因此该专栏大受读者欢迎,成为当时该学术期刊的王牌栏目之一。可以想象当时的情形,颇似早年金庸先生在《明报》上连载其武侠小说的盛况。后来在ACM的鼓励下,作者经过仔细修订和补充整理,对各篇文章做了精心编排,分别在1986年和1988年结集出版了Programming Pearls(《编程珠玑》)和More Programming Pearls(《编程珠玑(续)》)这两本书,二者均成为该领域的名著。《编程珠玑(第2版)》在2000年问世,书中的例子都改用C语言书写,并多处提到如何用C++和Java中的类来实现。《编程珠玑(续)》虽未再版,例子多以Awk语言写成,但其语法与C相近,容易看懂。

    作者博览群书,旁征博引,无论是计算机科学的专业名著,如《计算机程序设计艺术》,还是普通的科普名著,如《啊哈!灵机一动》,都在作者笔下信手拈来、娓娓道出,更不用说随处可见的作者自己的真知灼见了。如果说《计算机程序设计艺术》这样的巨著代表了程序员们使用的“坦克和大炮”一类的重型武器,这两本书则在某种程度上类似于鲁迅先生所说的“匕首与投枪”一类的轻型武器,更能满足职业程序员的日常需要。或者说前者是武侠小说中提高内力修为的根本秘籍,后者是点拨临阵招数的速成宝典,二者同样都是克敌制胜的法宝,缺一不可。在无止境地追求精湛技艺这一点上,程序员、数学家和武侠们其实是相通的。

    在美国,这两本书不仅被用作大学低年级数据结构与算法课程的教材,还用作高年级算法课程的辅助教材。例如,美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论就将这两本书列为推荐读物。这两本书覆盖了大学算法课程和数据结构课程的大部分内容,但是与普通教材的侧重点又不一样,不强调单纯从数学上进行分析的技巧,而是强调结合实际问题来进行分析、应用和实现的技巧,因此可作为大学计算机专业的算法、数据结构、软件工程等课程的教师参考用书和优秀课外读物。书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答,非常适合自学。正如作者所建议的那样,阅读这两本书时,读者需要备有纸和笔,最好还有一台计算机在手边,边读边想、边想边做,这样才能将阅读这两本书的收益最大化。

    人民邮电出版社引进版权,同时翻译出版了《编程珠玑(第2版)》和《编程珠玑(续)》,使这两个中译本珠联璧合,相信这不仅能极大地满足广大程序员读者的需求,还有助于提高国内相关课程的授课质量和学生的学习兴趣。

    本书主要由钱丽艳和刘田翻译,翻译过程中得到了严浩、李梁、任铁男三位研究生的帮助,在此一并表示感谢。由于本书内容深刻,语言精妙,而译者的水平和时间都比较有限,错误和不当之处在所难免,敬请广大读者批评指正。

    前言计算机编程充满乐趣,有时候,它又是一门优雅的科学,还要靠它去开发和使用新的软件工具。编程与人息息相关:客户实际想解决什么问题?如何让用户容易与程序沟通?是编程让我接触到相当广泛的话题,从有机化学到拿破仑战争。本书描述了编程的所有这些方面的知识,而且远不止这些。

    这是一部短文集,每篇短文独立成章,但所有短文又依据逻辑分成了几组。第1章至第4章描述操纵程序的技术;第5章至第8章给出了一些程序员的实用技巧,这是本书技术性最低的部分;第9章至第12章讲解输入和输出设计;第13章至第15章介绍了3个有用的子程序。这些分类主题在每个部分的引言中进行了详细说明。

    本书大多数章都是以我在《ACM通讯》杂志中的“编程珠玑”(Programming Pearls)专栏文章为基础的。各部分的引言中描述了这些文章的发表历史。既然已经发表过,为什么我还要费劲写这本书呢?自首次发表以来,这些专栏文章发生了很大变化,有了数千处小改进:有了新的问题和解决方案,纠正了小错误,并采纳了很多读者的意见。与此同时,我删除了一些旧的内容以免重复,并加入了很多新的内容,其中有一章是全新的。

    然而,写本书的最大理由是,我想把各章组成一个有机的整体,我想展示一整串珠玑。我1986年出版的《编程珠玑》是类似的13篇短文的结集,围绕性能这个中心主题来组织,该主题在最早两年的《ACM通讯》专栏中占据了突出位置。本书中也有几章再次谈及效率的话题,但全书考察的编程领域范围要大得多。

    读者阅读本书时不要太快,一次一章,仔细地读。试解一下书中提出的问题——有些问题并不像看起来那样容易。有些章末尾的“深入阅读”并不是学术意义上的参考文献列表,而是我推荐的一些好书,这些书是我个人藏书的重要部分。

    我很高兴能借此机会感谢许多人所作的重要贡献。感谢Al Aho、Peter Denning、Brian Kernighan和Doug McIlroy对各章提出了详细的意见。我还要感谢以下诸位提出有益的见解:Bill Cleveland、Mike Garey、Eric Grosse、Gerard Holzmann、Lynn Jelinski、David Johnson、Arno Penzias、Ravi Sethi、Bjarne Stroustrup、Howard Trickey和Vic Vyssotsky。感谢允许我引用他们信件的几个人,特别是Peter Denning、Bob Floyd、Frank Starmer、Vic Vyssotsky和Bruce Weide。我特别要感谢ACM鼓励我把专栏文章出版成书,还要感谢《ACM通讯》的许多读者,他们对原始专栏文章提出了不少意见,使得本书这个扩充版本的出版十分必要。贝尔实验室(特别是其计算科学研究中心)在我写这些专栏文章时,提供了极佳的支持环境。感谢所有的人。

    Jon Bentley

    于新泽西州Murray Hill

    目录前言第一部分 编程技术第1章 性能监视工具 1.1节计算素数1.2节使用性能监视工具1.3节专用的性能监视工具1.4节开发性能监视工具1.5节原理1.6节习题1.7节深入阅读第2章 关联数组 2.1节Awk中的关联数组2.2节有穷状态机模拟器2.3节拓扑排序2.4节原理2.5节习题2.6节深入阅读第3章 程序员的忏悔第4章 自描述数据第二部分 实用技巧第5章 劈开戈尔迪之结第6章 计算机科学箴言集第7章 粗略估算第8章 人员备忘录第三部分 人性化I/O第9章 小语言第10章 文档设计第11章 图形化输出第12章 对调查的研究第四部分 算法第13章 绝妙的取样第14章 编写数值计算程序第15章 选择附录A C和Awk语言附录B 子程序库部分习题答案

    欢迎来到异步社区!

    相关资源:编程珠玑 续
    最新回复(0)