From Mathematics to Generic Programming (häftad)
Format
Häftad (Paperback)
Språk
Engelska
Antal sidor
320
Utgivningsdatum
2014-11-27
Upplaga
1
Förlag
Addison-Wesley Professional
Medarbetare
Stepanov, Alexander / Rose, Daniel
Illustrationer
illustrations
Dimensioner
231 x 152 x 15 mm
Vikt
409 g
Antal komponenter
1
ISBN
9780321942043

From Mathematics to Generic Programming

The Mathematical Origins of Computer Programming

Häftad,  Engelska, 2014-11-27
312
  • Skickas från oss inom 5-8 vardagar.
  • Fri frakt över 249 kr för privatkunder i Sverige.
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 youre a reasonably proficient programmer who can think logically, you have all the background youll 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, youll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. Youll also gain deep insight into the value of mathematics to programminginsight 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
Visa hela texten

Passar bra ihop

  1. From Mathematics to Generic Programming
  2. +
  3. Co-Intelligence

De som köpt den här boken har ofta också köpt Co-Intelligence av Ethan Mollick (häftad).

Köp båda 2 för 540 kr

Kundrecensioner

Har du läst boken? Sätt ditt betyg »

Fler böcker av Alexander A Stepanov

  • Ada(R) Generic Library

    David R Musser, Alexander A Stepanov

    The Ada Generic Library provides an extensive well-documented library of generic packages whose use can substantially increase software productivity and reliability. The construction of the library follows a new approach whose principles include t...

  • The Ada Generic Library

    David R Musser, Alexander A Stepanov

    The Ada Generic Library provides an extensive well-documented library of generic packages whose use can substantially increase software productivity and reliability. The construction of the library follows a new approach whose principles include t...

Övrig information

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.

Innehållsförteckning

Acknowledgments ix

About the Authors xi

Authors Note xiii

 

Chapter 1: What This Book Is About 1

1.1 Programming and Mathematics 2

1.2 A Historical Perspective 2

1.3 Prerequisites 3

1.4 Roadmap 4

 

Chapter 2: The First Algorithm 7

2.1 Egyptian Multiplication 8

2.2 Improving the Algorithm 11

2.3 Thoughts on the Chapter 15

 

Chapter 3: Ancient Greek Number Theory 17

3.1 Geometric Properties of Integers 17

3.2 Sifting Primes 20

3.3 Implementing and Optimizing the Code 23

3.4 Perfect Numbers 28

3.5 The Pythagorean Program 32

3.6 A Fatal Flaw in the Program 34

3.7 Thoughts on the Chapter 38

 

Chapter 4: Euclids Algorithm 41

4.1 Athens and Alexandria 41

4.2 Euclids Greatest Common Measure Algorithm 45

4.3 A Millennium without Mathematics 50

4.4 The Strange History of Zero 51

4.5 Remainder and Quotient Algorithms 53

4.6 Sharing the Code 57

4.7 Validating the Algorithm 59

4.8 Thoughts on the Chapter 61

 

Chapter 5: The Emergence of Modern Number Theory 63

5.1 Mersenne Primes and Fermat Primes 63

5.2 Fermats Little Theorem 69

5.3 Cancellation 72

5.4 Proving Fermats Little Theorem 77

5.5 Eulers Theorem 79

5.6 Applying Modular Arithmetic 83

5.7 Thoughts on the Chapter 84

 

Chapter 6: Abstraction in Mathematics 85

6.1 Groups 85

6.2 Monoids and Semigroups 89

6.3 Some Theorems about Groups 92

6.4 Subgroups and Cyclic Groups 95

6.5 Lagranges Theorem 97

6.6 Theories and Models 102

6.7 Examples of Categorical and Non-categorical Theories 104

6.8 Thoughts on the Chapter 107

 

Chapter 7: Deriving a Generic Algorithm 111

7.1 Untangling Algorithm Requirements 111

7.2 Requirements on A 113

7.3 Requirements on N 116

7.4 New Requirements 118

7.5 Turning Multiply into Power 119

7.6 Generalizing the Operation 121

7.7 Computing Fibonacci Numbers 124

7.8 Thoughts on the Chapter 127

 

Chapter 8: More Algebraic Structures 129

8.1 Stevin, Polynomials, and GCD 129

8.2 Gttingen and German Mathematics 135

8.3 Noether and the Birth of Abstract Algebra 140

8.4 Rings 142

8.5 Matrix Multiplication and Semirings 145

8.6 Application: Social Networks and Shortest Paths 147

8.7 Euclidean Domains 150

8.8 Fields and Other Algebraic Structures 151

8.9 Thoughts on the Chapter 152

 

Chapter 9: Organizing Mathematical Knowledge 155

9.1 Proofs 155

9.2 The First Theorem 159<...