You don't need to own a Kindle device to enjoy Kindle books. Download one of our FREE Kindle apps to start reading Kindle books on all your devices.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Digital List Price: $46.28
Kindle Price: $25.17

Save $21.11 (46%)

includes tax, if applicable

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

Deliver to your Kindle or other device

Deliver to your Kindle or other device

From Mathematics to Generic Programming by [Stepanov, Alexander A., Rose, Daniel E.]
Kindle App Ad

From Mathematics to Generic Programming 1st , Kindle Edition

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition, 13 Nov 2014
"Please retry"

Length: 312 pages Enhanced Typesetting: Enabled Page Flip: Enabled
Language: English

Kindle Daily Deal: Save at least 70%
Each day we unveil a new book deal at a specially discounted price - for that day only. See today's deal or sign up for the newsletter

Product description

Product Description

In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful.


If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem.


As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming—insight that will prove invaluable no matter what programming languages and paradigms you use.


You will learn about

  • How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
  • Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
  • A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
  • Powerful mathematical approaches to abstraction
  • How abstract algebra provides the idea at the heart of generic programming
  • Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
  • Surprising subtleties of simple programming tasks and what you can learn from them
  • How practical implementations can exploit theoretical knowledge


Product details

  • Format: Kindle Edition
  • File Size: 8880 KB
  • Print Length: 312 pages
  • Page Numbers Source ISBN: 0321942043
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (13 November 2014)
  • Sold by: Amazon Australia Services, Inc.
  • Language: English
  • Text-to-Speech: Enabled
  • X-Ray:
  • Word Wise: Not Enabled
  • Screen Reader: Supported
  • Enhanced Typesetting: Enabled
  • Average Customer Review: Be the first to review this item
  • Amazon Bestsellers Rank: #241,767 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
click to open popover

Customer reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on (beta) (May include reviews from Early Reviewer Rewards Program) 4.4 out of 5 stars 46 reviews
5 of 5 people found the following review helpful
5.0 out of 5 stars Guide to Systematic Code Refinement 12 January 2015
By Michael Gautier - Published on
Verified Purchase
Fuses logic and intuition concerning software development into 1 book. The author takes history spanning ancient Greece to the 1960's and shows their relevance to writing code. If you are into software design patterns, the book shows you an alternative to that practice. If you are into object-oriented design, you may see another point of view in the design of types and abstractions. The process he uses in the book may be a form of refactoring, but his approach may be considered far more systematic. Read the book and you will gain an expanded view of writing and designing code.
57 of 59 people found the following review helpful
5.0 out of 5 stars Great illustration of the core ideas in Generic Programming 22 November 2014
By kurseewalla - Published on
This is a remarkable book. It vividly illustrates the relationship of abstract mathematics to generic programming, and I don't know of any other book that gets to the heart of generic programming the way this one does.

It starts by describing two algorithms which have been known for millennia - the Egyptian multiplication algorithm, and Euclid's greatest common measure algorithm - and then traces their evolution through history, describing how the algorithms were extended by successive generations of mathematicians. At each step, the authors implement the algorithm in C++, illustrating the process of taking a concrete algorithm and successively generalizing it. These two parallel threads of algorithm evolution and implementation generalization run throughout the book, providing a very compelling demonstration that the process of generalizing an algorithm is precisely the same as the process that mathematics has followed through the ages.

Along the way, we meet many great figures from mathematics, which turns what could have been a dry theoretical text into an absorbing story of the evolution of mathematical thought and the remarkable people that led it. This is an informal book, designed to be easy to read (in stark contrast to "Elements of Programming" by Stepanov and McJones), and any competent programmer with an understanding of high school math should be able to follow it comfortably.
3 of 3 people found the following review helpful
5.0 out of 5 stars Interesting, well-written - merges mathematical concepts and software programming 16 July 2015
By Daniel MMM - Published on
Verified Purchase
It is a very interesting and extremely well-written book. It merges mathematical concepts and software coding of these, in order to show that generic programming ideas go hand-in-hand with mathematics. The book is worth reading also because it brings together history of mathematics (there are several 'info boxes' about prominent mathematicians and their bios and main contributions) and how their mathematical ideas developed through the centuries come about in software generic programming. More pragmatically, I like the way exercises are scattered through the text instead of crammed at the end of each chapter. It gives a nice feeling of flow to the reading experience. I have not read the whole book yet, but have been through pretty much half of it, and it is very good so far.
2 of 2 people found the following review helpful
5.0 out of 5 stars Inspired...and inspirational! 23 June 2015
By Purple Mage - Published on
Verified Purchase
If you want to look under the hood to see how one of the most important current computing principles (Generic Programming) evolved, then get this book. The authors weave fascinating biographical information through an evolving story, showing how the breakthrough works of key historical figures in Mathematics eventually led us to where we are today. A very basic primer in Abstract Algebra is provided for those whose lives have not yet been warmed by the glow of the burning embers of group, ring and field theory. I was left with a great sense of appreciation for the Mathematicians whose work we are now able to use to practical advantage every day. And, it left me wondering what other advancements might be possible, using these and perhaps other abstract mathematical truths, learned over time.
3 of 4 people found the following review helpful
3.0 out of 5 stars Good on math history. Weak on programming advice. 3 April 2017
By Brendan - Published on
Verified Purchase
This book is largely a history of math algorithms, from ancient Egypt to the present day, with several examples of possible implementation in pseudo-C++. It is well organized. The writing tone is light and conversational. If that sounds like an interesting read to you, you'll probably enjoy this book a great deal.

Personally, I found it disappointed. Why? Because what attracted me to the book was not the promise of a math history tour, but the promise of useful insights into my craft as a software developer and engineer. The authors frequently close chapters with vague allusions to how such-and-such algorithm illustrates a fundamental insight into the nature of programming working code. Often these insights are correct, but obvious to experienced developers and insufficiently explained to novices and journeymen.

The final paragraph of the book states, "Next time you set out to write a program, try to adopt the generic programming attitude. Start with specific implementations of your functions, then revise and and refine them to be more efficient and more general." That is, in a nutshell, the entirety of the book's practical instruction on writing code.

Where's My Stuff?

Delivery and Returns

Need Help?