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 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 University of California, San Diego, and a B.A. in philosophy from Harvard University.
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
發表於2024-12-22
From Mathematics to Generic Programming 2024 pdf epub mobi 電子書 下載
圖書標籤: 數學 Programming 泛型 計算機科學 編程 C++ 計算機 抽象
以數學曆史中抽象概念的行為為例,講解C++範型編程的思想。對於讀者可能有一定的門檻,但是對於有基礎的讀者而言,這本書從基礎的數學開始,穿插著數學傢和數學發現的小故事,可謂深入淺齣,同時又妙趣橫生。
評分數學太多,編程太少,比起Elements of Programming還是差一些。
評分數學太多,編程太少,比起Elements of Programming還是差一些。
評分A decent book that connects number theory and abstract algebra with generic programming. A prologue to 『Elements of Programming』
評分真是一本優美的小冊子,迴國飛機上一口氣看完。作為科普書,給五星,但是作為泛型編程隻能一星。用gcd串起瞭抽象代數的發展史,從古埃及到現代代數,有趣又好玩。
From Mathematics to Generic Programming 2024 pdf epub mobi 電子書 下載