欢迎来到相识电子书!

标签:计算机

  • The Art of Computer Programming, Volume 1, Fascicle 1

    作者:Donald E. Knuth

    From the Back Cover This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his "cookbook" solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published t regular intervals. Each fascicle will encompass a section or more of wholly new or evised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 1, Fascicle 1 This first fascicle updates The Art of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms, and ultimately will become part of the fourth edition of that book. Specifically, it provides a programmer's introduction to the long-awaited MMIX, a RISC-based computer that replaces the original MIX, and describes the MMIX assembly language. The fascicle also presents new material on subroutines, coroutines, and interpretive routines.
  • Real-Time Rendering, Third Edition

    作者:Tomas Akenine-Moller

    Thoroughly revised, this third edition focuses on modern techniques used to generate synthetic three-dimensional images in a fraction of a second. With the advent or programmable shaders, a wide variety of new algorithms have arisen and evolved over the past few years. This edition discusses current, practical rendering methods used in games and other applications. It also presents a solid theoretical framework and relevant mathematics for the field of interactive computer graphics, all in an approachable style.
  • The Algorithm Design Manual

    作者:Steven S. Skiena

    ....The most comprehensive guide to designing practical and efficient algorithms.... Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Award, this new edition of The Algorithm Design Manual is an essential learning tool for students needing a solid grounding in algorithms, as well as a special text/reference for professionals who need an authoritative and insightful guide. Professor Skiena is also author of the popular Springer text, Programming Challenges: The Programming Contest Training Manual.
  • 实用算法的分析与程序设计

    作者:吴文虎 王建德

    简介:国际信息学奥林匹克竞赛指导 主题词:电子计算机(学科: 竞赛学科: 中学学科: 教学参考资料) 更多同类图书:文化、科学、教育、体育>教育>中等教育>教材、课本、辅助教材
  • 操作系统概念

    作者:(美)西尔伯斯查兹

    《操作系统概念》(第6版翻译版)是讨论了操作系统中的基本概念和算法,并对大量实例(如Linux系统)进行了研究。全书内容共分七部分。第一部分概要解释了操作系统是什么、做什么、是怎样设计与构造的,也解释了操作系统概念是如何发展起来的,操作系统的公共特性是什么。第二部分进程管理描述了作为现代操作系统核心的进程以及并发的概念。第三部分存储管理描述了存储管理的经典结构与算法以及不同的存储管理方案。第四部分I/O系统对I/O进行了深入的讨论,包括I/O系统设计、接口、内部结构与功能等。第五部分分布式系统介绍了分布式系统的一般结构以及连接它们的网络,讨论了分布存取策略、分布式文件系统及分布式系统中同步、通信等机制。第六部分保护与安全介绍了操作系统中对文件、内存、CPU及其他资源进行操作的安全与保护机制。第七部分案例研究,分析与讨论了Linux系统、Windows 2000、WindowsXP、FreeBSD、Mach及Nachos等实例。
  • Unix/Linux编程实践教程

    作者:Bruce Molay,杨宗源,黄海涛

    操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,亦可作为有一定系统编程基础的开发人员的自学教材和参考手册。
  • Python 编程金典

    作者:P.J.Deitel,J.P.Liper

    本书由全球著名的程序语言培训专家精心编著,解释了如何将Python用作常规用途,编写多层、客户机/服务器结构、数据库密集型、基于Internet和Web的应用程序。书中采用作者独创的“活代码”教学方式,层层揭示了Python这一程序设计语言的强大功能,并通过穿插在全书各处的屏幕输出和编程技巧与提示,帮助读者搭建良好的知识结构、养成良好的编程习惯、避免常见的编程错误以及写出高效、可靠的应用程序。
  • Java与模式

    作者:阎宏 编著

    《Java与模式》是一本讲解设计原则以及最为常见的设计模式的实用教材,目的是为了工作繁忙的Java系统设计师提供一个快速而准确的设计原则和设计模式的辅导。全书分为55章,第一个章节讲解一个编编程模式,说明此模式的用意、结构,以及这一模式适合于什么样的情况等。每一个章节都附有多个例子和练习题,研习这些例子、完成这些练习题可以帮助读者更好地理解所讲的内容。大多数的章节都是相对独立的,读者可以从任何一章开始读起。为了满足不同程序的读者的需要,书中提供了一些标为“专题”的章节,不阅读这些章节,对阅读书中的标准章节没有影响。
  • 代码阅读方法与实践

    作者:斯平内利斯

    代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论述。本书引用的代码均取材于开放源码项目——所有程序员都应该珍视的宝库。本书围绕代码阅读,详细论述了相关的知识与技能。“他山之石、可以攻玉”,通过仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。 本书适用于对程序设计的基本知识有一定了解,并想进一步提高自身开发能力的读者。
  • Windows核心编程

    作者:Jeffrey Richter

    Windows核心编程,ISBN:9787111079453,作者:(美)Jeffrey Richter(J.理查特)著;王建华[等]译;王建华译
  • 高质量程序设计指南

    作者:林锐,韩永泉

    《高质量程序设计指南:C++、C语言》(第3版)以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。《高质量程序设计指南:C++、C语言》(第3版)共17章,第1章到第4章重点介绍软件质量和基本的程序设计方法;第5章到第16章重点阐述 C++/C编程风格、面向对象程序设计方法和一些技术专题;第17章阐述STL 的原理和使用方法。   《高质量程序设计指南:C++、C语言》(第3版)第1版和第2版部分章节曾经在Internet上广泛流传,被国内IT企业的不少软件开发人员采用。《高质量程序设计指南:C++、C语言》(第3版)的附录C《大学十年》是作者在网上发表的一个短篇传记,文中所描述的充满激情的学习和生活态度,感染了大批莘莘学子。
  • 数据库系统概念

    作者:西尔伯沙茨,科思,苏达尔善

    数据库管理已经从一种专门的计算机应用发展为现代计算环境中的一个核心部分,因此,有关数据库系统的知识已成为计算机科学教育的基本部分。本书介绍了数据库管理的基本概念,包括数据库设计、数据库语言和数据库系统实现。. 本书可作为本科三年级或四年级的数据库入门教材,也可作为研究生一年级的教材。除了具有可作为入门课程的基本内容外,本书还包括可作为课程补充的高级内容或高级课程的入门性材料。
  • C++Primer(英文版)(第4版)

    作者:Stanley B.Lippman,Jo

    《C++Primer》(英文版)(第4版)(图灵原版计算机科学系列)是久负盛名的C++经典教程,已经帮助全球无数程序员学会了C++。这一全新版本进行了彻底的修订,章节内容和编排都经过了重新组织,既显著改善了可读性,又充分体现了C++语言的最新进展和当前的业界最佳实践。 本书新版特色 一开始就介绍C++标准库,使读者能够尽快编写实用程序,从而始终在实战环境中学习。 讲授现代编程风格和程序设计技术。 新增了大量教学辅助内容,用于强调重要的知识点、常见的错误、优秀的编程实践和使用提示。 大量来自实战的示例和习题,可以巩固所学技能。 书中例程的完整源代码可从www.turingbook.com网站下载。 本书所有作者都是著名的C++权威人物。 Stanley B. Lippman目前是微软公司 Visual C++ 团队的架构师。他从1984年开始在贝尔实验室与C++的设计者Bjarne Stroustrup一起从事C++的设计与开发。他在迪士尼和梦工厂从事动画制作,还担任过JPL的高级顾问。他还著有Inside the C++ Object Model。 Josée Lajoie曾经是IBM加拿大研究中心C/C++编译器开发团队的成员,在ISO C++标准委员会工作了7年,担任过ISO核心语言工作组的主席和C++ Report杂志的专栏作家。 Barbara E. Moo是拥有25年软件经验的独立咨询顾问。在AT&T,她与Stroustrup、Lippman一起管理过复杂的C++开发项目。她和Andrew•Koenig合著了Accelerated C++和Ruminations on C++。
  • C程序设计(第二版)

    作者:谭浩强

    C语言是国内外广泛使用的计算机语言,是计算机应用人员应掌握的一种程序设计工具。 本书第一版于1991年出版,全书针对初学者的特点,精心策划、准确定位、概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。普遍认为它是学习C语言的好教材,被全国大多数高校选用。几年来发行量达270万册,创同类书发行量的全国纪录。被电子工业部评为部级优秀教材一等奖。 根据发展的需要,作者对本书进行了修订,加强了算法,按C的新标准改写全书各章,增加了C十十的初步知识。 本书内容新颖、体系合理、逻辑性强、文字流畅、通俗易懂,是学习C语言的理想教材。凡具有计算机初步知识的读者都能读懂本书。本书可作为高等学校各专业的正式教材,也是一本自学的好教材。
  • 编程珠玑(第2版•修订版)

    作者:[美] Jon Bentley 乔恩•本

    历史上最伟大的计算机科学著作之一 融深邃思想、实战技术与趣味轶事于一炉的奇书 带你真正领略计算机科学之美 多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。 在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。 本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。 书评 “《编程珠玑》是对我职业生涯早期影响最大的书之一,其中的许多真知灼见多年之后仍然使我受益匪浅。” ——Steve McConnell,软件工程大师,IEEE Software前主编,《代码大全》作者
  • 深入理解Java虚拟机(第2版)

    作者:周志明

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》内容简介:第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据最新的JDK 1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和最佳实践;增加了若干与生产环境相结合的实战案例;对第1版中的错误和不足之处的修正;等等。第2版不仅技术更新、内容更丰富,而且实战性更强。 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。 第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解书中后面内容有重要帮助。 第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。 第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。 第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果; 第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。
  • Computer Organization and Design

    作者:David A. Patterson,J

    A revised printing for this book will be available in June 2007! Whats New in the Third Edition, Revised Printing The same great book gets better! The revised printing features all of the original content along with these additional features: Appendix A (Assemblers, Linkers, and the SPIM Simulator) has been moved from the CD-ROM into the printed book Corrections and bug fixes Click here to request a desk copy of the revised printing! About the Third Edition In addition to thoroughly updating every aspect of the text to reflect the most current computing technology, the third edition *Uses standard 32-bit MIPS 32 as the primary teaching ISA. *Presents the assembler-to-HLL translations in both C and Java. *Highlights the latest developments in architecture in Real Stuff sections: + Intel IA-32 + Power PC 604 + Googles PC cluster + Pentium P4 + SPEC CPU2000 benchmark suite for processors + SPEC Web99 benchmark for web servers + EEMBC benchmark for embedded systems + AMD Opteron memory hierarchy + AMD vs. 1A-64 New support for distinct course goals Many of the adopters who have used our book throughout its two editions are refining their courses with a greater hardware or software focus. We have provided new material to support these course goals: New material to support a Hardware Focus +Using logic design conventions +Designing with hardware description languages +Advanced pipelining +Designing with FPGAs +HDL simulators and tutorials +Xilinx CAD tools New material to support a Software Focus +How compilers Work +How to optimize compilers +How to implement object oriented languages +MIPS simulator and tutorial +History sections on programming languages, compilers, operating systems and databases Whats New in the Third Edition New pedagogical features Understanding Program Performance -Analyzes key performance issues from the programmers perspective Check Yourself Questions -Helps students assess their understanding of key points of a section Computers In the Real World -Illustrates the diversity of applications of computing technology beyond traditional desktop and servers For More Practice -Provides students with additional problems they can tackle In More Depth -Presents new information and challenging exercises for the advanced student New reference features Highlighted glossary terms and definitions appear on the book page, as bold-faced entries in the index, and as a separate and searchable reference on the CD. A complete index of the material in the book and on the CD appears in the printed index and the CD includes a fully searchable version of the same index. Historical Perspectives and Further Readings have been updated and expanded to include the history of software R&D. CD-Library provides materials collected from the web which directly support the text. On the CD CD-Bars: Full length sections that are introduced in the book and presented on the CD CD-Appendixes: The entire set of appendixes CD-Library: Materials collected from the web which directly support the text CD-Exercises: For More Practice provides exercises and solutions for self-study In More Depth presents new information and challenging exercises for the advanced or curious student Glossary: Terms that are defined in the text are collected in this searchable reference Further Reading: References are organized by the chapter they support Software: HDL simulators, MIPS simulators, and FPGA design tools Tutorials: SPIM, Verilog, and VHDL Additional Support: Processor Models, Labs, Homeworks, Index covering the book and CD contents Instructor Support + Instructor Support is provided in a password-protected site to adopters who request the password from our sales representative + Solutions to all the exercises + Figures from the book in a number of formats + Lecture slides prepared by the authors and other instructors + Lecture notes System Requirements Operating System Most of the content on this CD can be used under any operating system that includes an HTML browser and a PDF viewer. This includes Windows 98 or later, Mac OS 9 and OS X, and most Linux and Unix systems. Some contributed software on this CD is operating system specific. See the installation instructions on the Software page for details. HTML Browser The navigation framework and some of the content on this CD is delivered in HTML and JavaScript. It is recommended that you install the latest version of your favorite HTML browser to view this CD. The content has been verified under Windows 2000 with the following browsers: Internet Explorer 6.0, Mozilla 1.6, Netscape 7.1, Opera 7.23. Under Mac OS X with the following browsers: Internet Explorer 5.2.3, Mozilla 1.6 , Netscape 7.1, Safari 1.2. And under Mandrake Linux with the following browser: Galeon 1.3.8. The content is designed to be viewed in a browser window that is at least 720 pixels wide. You may find the content does not display well if your display is not set to at least 1024x768 pixel resolution. PDF Viewer The CD material includes PDF documents that you can read with a PDF viewer such as Adobe® Acrobat® or Adobe Reader®. Recent versions of Adobe Reader for supported platforms are included on the CD. Visit the Adobe Reader home page for more information. Browser Plugins Some of the material on this CD makes use of Flash® animations. To view this material, you will need to have Macromedia® Flash Player installed. You can install the Shockwave® Player (which includes Flash) on Windows and Macintosh from this CD. Visit the Macromedia homepage for more information. Note that recent versions of some browsers, including Internet Explorer, Netscape, and AOL, already incorporate Flash Player. Some of the material on this CD contains photographic panoramas that can only be viewed with the iseemedia Zoom Viewer browser plugin on Windows and Mac OS 9 platforms. Visit iseemedia's website for download instructions. For instructor resources click on the grey "companion site" button found on the right side of this page. This new edition represents a major revision. New to this edition: * Entire Text has been updated to reflect new technology * 70% new exercises. * Includes a CD loaded with software, projects and exercises to support courses using a number of tools * A new interior design presents defined terms in the margin for quick reference * A new feature, "Understanding Program Performance" focuses on performance from the programmer's perspective * Two sets of exercises and solutions, "For More Practice" and "In More Depth," are included on the CD * "Check Yourself" questions help students check their understanding of major concepts * "Computers In the Real World" feature illustrates the diversity of uses for information technology *More detail below...
  • Advanced Programming in the UNIX(R) Environment (2nd Edition)

    作者:W. Richard Stevens,S

    "Stephen Rago's update is a long overdue benefit to the community of professionals using the versatile family of UNIX and UNIX-like operating environments. It removes obsolescence and includes newer developments. It also thoroughly updates the context of all topics, examples, and applications to recent releases of popular implementations of UNIX and UNIX-like environments. And yet, it does all this while retaining the style and taste of the original classic."--Mukesh Kacker, cofounder and former CTO of Pronto Networks, Inc."One of the essential classics of UNIX programming."--Eric S. Raymond, author of The Art of UNIX Programming"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the classic Stevens text while keeping true to the original. The APIs are illuminated by clear examples of their use. He also mentions many of the pitfalls to look out for when programming across different UNIX system implementations and points out how to avoid these pitfalls using relevant standards such as POSIX 1003.1, 2004 edition and the Single UNIX Specification, Version 3."--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group"Advanced Programming in the UNIX® Environment, Second Edition, is an essential reference for anyone writing programs for a UNIX system. It's the first book I turn to when I want to understand or re-learn any of the various system interfaces. Stephen Rago has successfully revised this book to incorporate newer operating systems such as GNU/Linux and Apple's OS X while keeping true to the first edition in terms of both readability and usefulness. It will always have a place right next to my computer."--Dr. Benjamin Kuperman, Swarthmore CollegePraise for the First Edition"Advanced Programming in the UNIX® Environment is a must-have for any serious C programmer who works under UNIX. Its depth, thoroughness, and clarity of explana-tion are unmatched."--UniForum Monthly"Numerous readers recommended Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley), and I'm glad they did; I hadn't even heard of this book, and it's been out since 1992. I just got my hands on a copy, and the first few chapters have been fascinating."--Open Systems Today"A much more readable and detailed treatment of UNIX internals can be found in Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley). This book includes lots of realistic examples, and I find it quite helpful when I have systems programming tasks to do."--RS/Magazine"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the original Stevens classic while keeping true to the original."--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working GroupFor over a decade, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX® Environment. Now, Stevens' colleague Stephen Rago has thoroughly updated this classic to reflect the latest technical advances and add support for today's leading UNIX and Linux platforms.Rago carefully retains the spirit and approach that made this book a classic. Building on Stevens' work, he begins with basic topics such as files, directories, and processes, carefully laying the groundwork for understanding more advanced techniques, such as signal handling and terminal I/O.Substantial new material includes chapters on threads and multithreaded programming, using the socket interface to drive interprocess communication (IPC), and extensive coverage of the interfaces added to the latest version of the POSIX.1 standard. Nearly all examples have been tested on four of today's most widely used UNIX/Linux platforms: FreeBSD 5.2.1; the Linux 2.4.22 kernel; Solaris 9; and Darwin 7.4.0, the FreeBSD/Mach hybrid underlying Apple's Mac OS X 10.3.As in the first edition, you'll learn through example, including more than 10,000 lines of downloadable, ANSI C source code. More than 400 system calls and functions are demonstrated with concise, complete programs that clearly illustrate their usage, arguments, and return values. To tie together what you've learned, the book presents several chapter-length case studies, each fully updated for contemporary environments.Advanced Programming in the UNIX® Environment has helped a generation of programmers write code with exceptional power, performance, and reliability. Now updated for today's UNIX/Linux systems, this second edition will be even more indispensable.
  • 图形程序开发人员指南

    作者:Michael Abrash

    Michael Abrash's classic Graphics Programming Black Book is a compilation of Michael's previous writings on assembly language and graphics programming (including from his "Graphics Programming" column in Dr. Dobb's Journal). Much of the focus of this book is on profiling and code testing, as well as performance optimization. It also explores much of the technology behind the Doom and Quake 3-D games, and 3-D graphics problems such as texture mapping, hidden surface removal, and the like. You could get this book from here: http://www.gamedev.net/reference/articles/article1698.asp
  • 编程原本

    作者:Alexander Stepanov,P

    本书提供了有关编程的一种与众不同的理解。其主旨是,实际的编程也应像其他科学和工程领域一样基于坚实的数学基础。本书展示了在实际编程语言(如C++)中实现的算法如何在最一般的数学背景中操作。例如,如何定义快速求幂算法,使之能使用任何可交换运算。使用抽象算法将能得到更高效、可靠、安全和经济的软件。 这不是一本很容易读的书,它也不是能提升你的编程技能的秘诀和技巧汇编。本书的价值是更根本性的,其终极目标是提升你对编程的洞察力。要想从中大获裨益,你需要从头到尾认真学习:阅读代码,证明引理,完成练习。到结束之时,你将看到如何把这里讨论的演绎方法应用到你的程序中,保证你做出的软件部件能一起工作,并表现出它们所应该表现的行为。 书中给出的算法和需求针对某些被操作的类型。有关这些描述的代码(也可以通过Web得到)采用C++的一个小子集书写,这样做是为了让所有有经验的程序员都能理解。这个小子集可以看做一种特殊语言,是由Sean Parent和Bjarne Stroustrup一起设计的。 无论你是一位软件开发者,还是其他以编程作为一项重要活动的专业人员,或者是一名在校的学生,你都会逐渐理解本书的经验丰富的作者多年来一直在教授和阐释的道理:数学对于编程是绝好的东西,理论对于实际是绝好的东西。