Download Alexander A. Stepanov - From Mathematics to Generic Programming in FB2, PDF, DJV
9780321942043 English 0321942043 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., In their new book From Mathematics to Generic Programming , C++ STL creator Alexander Stepanov and Information Retrieval researcher Daniel Rose show how programmers can become more effective by learning about the idea of abstraction and the math it relies on. In an engaging and accessible fashion, they describe how these mathematical results were first discovered and are surprisingly useful in programming. Aimed at a wider audience than the classic Elements of Programming by Stepanov and McJones, From Mathematics to Generic Programming takes a less formal approach, interleaving discussions of programming, mathematical results, and stories of the people who made these discoveries throughout history. The authors trace the development of common algorithms from ancient times to the present, and show how to generalize them to new applications -- even to the secure protocols of modern Internet commerce. From Mathematics to Generic Programming is a great introduction to the core principles of generic programming for the professional programmer. The authors work through examples showing how to analyze the requirements of an algorithm and make it as general as possible. The book includes several programming "laws" of particular interest to those building software components., 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 aboutHow to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiencyAncient paradoxes, beautiful theorems, and the productive tension between continuous and discreteA simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on itPowerful mathematical approaches to abstractionHow abstract algebra provides the idea at the heart of generic programmingAxioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structuresSurprising subtleties of simple programming tasks and what you can learn from themHow practical implementations can exploit theoretical knowledge Alexander A. Stepanov has been programming since 1972-first in the Soviet Union and, since emigrating in 1977, in the United States. He has programmed operating systems, programming tools, compilers, and libraries. His work on the foundations of programming has been supported by GE, Polytechnic University, Bell Labs, HP, SGI, Adobe, and, since 2009, A9.com, Amazon's search 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 research scientist who has held management positions at Apple, AltaVista, Xigo, Yahoo, and A9.com. His research focuses on all aspects of search, ranging from low-level algorithms for index compression to human--computer interaction. Rose led the Apple team that created desktop search for the Mac. He holds a Ph.D. in cognitive science and computer science from the University of California, San Diego, and a B.A. in philosophy from Harvard.
9780321942043 English 0321942043 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., In their new book From Mathematics to Generic Programming , C++ STL creator Alexander Stepanov and Information Retrieval researcher Daniel Rose show how programmers can become more effective by learning about the idea of abstraction and the math it relies on. In an engaging and accessible fashion, they describe how these mathematical results were first discovered and are surprisingly useful in programming. Aimed at a wider audience than the classic Elements of Programming by Stepanov and McJones, From Mathematics to Generic Programming takes a less formal approach, interleaving discussions of programming, mathematical results, and stories of the people who made these discoveries throughout history. The authors trace the development of common algorithms from ancient times to the present, and show how to generalize them to new applications -- even to the secure protocols of modern Internet commerce. From Mathematics to Generic Programming is a great introduction to the core principles of generic programming for the professional programmer. The authors work through examples showing how to analyze the requirements of an algorithm and make it as general as possible. The book includes several programming "laws" of particular interest to those building software components., 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 aboutHow to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiencyAncient paradoxes, beautiful theorems, and the productive tension between continuous and discreteA simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on itPowerful mathematical approaches to abstractionHow abstract algebra provides the idea at the heart of generic programmingAxioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structuresSurprising subtleties of simple programming tasks and what you can learn from themHow practical implementations can exploit theoretical knowledge Alexander A. Stepanov has been programming since 1972-first in the Soviet Union and, since emigrating in 1977, in the United States. He has programmed operating systems, programming tools, compilers, and libraries. His work on the foundations of programming has been supported by GE, Polytechnic University, Bell Labs, HP, SGI, Adobe, and, since 2009, A9.com, Amazon's search 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 research scientist who has held management positions at Apple, AltaVista, Xigo, Yahoo, and A9.com. His research focuses on all aspects of search, ranging from low-level algorithms for index compression to human--computer interaction. Rose led the Apple team that created desktop search for the Mac. He holds a Ph.D. in cognitive science and computer science from the University of California, San Diego, and a B.A. in philosophy from Harvard.