From Mathematics to Generic Programming (Paperback)
暫譯: 從數學到泛型程式設計 (平裝本)

Alexander A. Stepanov, Daniel E. Rose

買這商品的人也買了...

商品描述

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

 

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.

商品描述(中文翻譯)

在這本內容豐富但易於理解的書中,開創性軟體設計師亞歷山大·斯捷潘諾夫(Alexander Stepanov)和他的同事丹尼爾·羅斯(Daniel Rose)闡明了泛型程式設計的原則以及其基礎的數學抽象概念,幫助您編寫更簡單且更強大的程式碼。

如果您是一位具備合理程式設計能力且能夠邏輯思考的程式設計師,您已經具備所需的背景知識。斯捷潘諾夫和羅斯以卓越的清晰度介紹了相關的抽象代數和數論。他們仔細解釋了數學家最初需要解決的問題,然後展示這些數學解決方案如何轉化為泛型程式設計以及創建更有效和優雅的程式碼。為了展示這些數學原則在許多現代應用中的關鍵角色,作者展示了如何使用這些結果和一般化算法來實現一個現實世界的公鑰加密系統。

在閱讀這本書的過程中,您將掌握有效程式設計所需的思考過程,並學會如何將狹隘構思的算法進行一般化,以擴大其用途而不損失效率。您還將深入了解數學對程式設計的價值——這種洞察力在您使用任何程式語言和範式時都將是無價的。

您將學到:

- 如何將一個四千年的古老算法進行一般化,展示有關清晰度和效率的不可或缺的教訓
- 古老的悖論、美麗的定理,以及連續與離散之間的生產性緊張
- 一個簡單的算法來尋找最大公因數(GCD)及其基礎上的現代抽象
- 強大的數學方法來進行抽象
- 抽象代數如何提供泛型程式設計核心的理念
- 公理、證明、理論和模型:使用數學技術來組織有關您的算法和數據結構的知識
- 簡單程式設計任務的驚人微妙之處以及您可以從中學到的東西
- 實際實現如何利用理論知識

亞歷山大·斯捷潘諾夫(Alexander A. Stepanov)自1972年以來一直在編程——最初在蘇聯,1977年移民後在美國。他編寫過操作系統、編程工具、編譯器和庫。他在程式設計基礎方面的工作得到了GE、理工大學、貝爾實驗室、HP、SGI、Adobe,以及自2009年以來的A9.com(亞馬遜的搜索子公司)的支持。1995年,他因設計C++標準模板庫而獲得《Dr. Dobb's Journal》卓越程式設計獎。

丹尼爾·羅斯(Daniel E. Rose)是一位研究科學家,曾在Apple、AltaVista、Xigo、Yahoo和A9.com擔任管理職位。他的研究專注於搜索的各個方面,從索引壓縮的低級算法到人機互動。羅斯領導了創建Mac桌面搜索的Apple團隊。他擁有加州大學聖地亞哥分校的認知科學和計算機科學博士學位,以及哈佛大學的哲學學士學位。