这是一本内容丰富而又通俗易懂的书籍,由优秀的软件设计师 Alexander A. Stepanov 与其同事 Daniel E. Rose 所撰写。作者在书中解释泛型编程的原则及其所依据的抽象数学概念,以帮助你写出简洁而强大的代码。
只要你对编程相当熟悉,并且擅长逻辑思考,那么就可以顺利阅读本书。Stepanov 与 Rose 会清晰地讲解相关的抽象代数及数论知识。他们首先解释数学家想要解决的问题,然后告诉大家如何把这些数学解法转化为泛型编程算法,并编写出高效而优雅的代码。为了演示数学原理在当前许多领域之中的运用,作者会以相关的数学结论及泛型算法来实现一套实用的公钥加密系统。
在阅读本书的过程中,你将掌握高效编程的思路,并学会怎样在保持效率的前提下,对适用范围较窄的算法做推广。这可以让你深刻地领悟到:数学与编程相结合有着什么样的意义。无论采用何种编程语言与编程范式,数学思想都能给编程工作带来巨大的价值。
通过阅读本书,你将学到:
怎样对一种拥有四千年历史的算法做推广,在推广过程中如何保持算法的清晰与高效
经典的难题、美妙的定理,以及连续和离散之间那种健康的张力
一种寻找最大公约数(GCD)的简单算法,以及对该算法所做的现代抽象
强大的抽象数学方法
抽象代数怎样给泛型编程提供核心思路
怎样通过公理、证明、理论以及模型等数学技巧,来整理算法及数据结构方面的知识
看似简单的编程任务里面,隐藏着哪些出人意料的问题,我们可以从中获得什么样的经验
如何对理论知识做实际的运用