In From Mathematics to Generic Programming, Alexander Stepanov (creator of C++ STL) and Daniel Rose introduce math that can make any serious programmer more effective -- and they do so in an engaging and accessible fashion, revealing how this math was first discovered, how programmers recognized its value, and the many surprising ways they have applied it. The perfect complement to Stepanov's classic Elements of Programming, From Mathematics to Generic Programming journeys through three key algorithms: multiplication; division with remainder; and adding 1. Those algorithms may sound pretty basic -- even "elementary school" basic. But the authors show how they have played a profound role in the development of mathematics -- and how, at a much deeper level, they are still essential to the work of today's programmers. In exploring these case studies, Stepanov and Rose show how to implement and read algorithms of all kinds, how to generalize them to the broadest possible set of applications, and how to define programming interfaces based on them.
Alexander A. Stepanov studied mathematics at Moscow State University from 1967 to 1972. He has been programming since 1972: first in the Soviet Union and, after emigrating in 1977, in the United States. He has programmed operating systems, programming tools, compilers, and libraries. His work on foundations of programming has been supported by GE, Polytechnic University, Bell Labs, HP, SGI, Adobe, and since 2009, A9.com, Amazon's search technology subsidiary. In 1995 he received the Dr. Dobb's Journal Excellence in Programming Award for the design of the C++ Standard Template Library. Daniel E. Rose is a programmer and research scientist who has held management positions at Apple, AltaVista, Xigo, Yahoo, and A9.com. His research focuses on all aspects of search technology, ranging from low-level algorithms for index compression to human-computer interaction issues in web search. Rose led the team at Apple that created desktop search for the Macintosh. He holds a Ph.D. in Cognitive Science and Computer Science from UC San Diego, and a B.A. in Philosophy from Harvard University.