did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321635372

Elements of Programming

by ;
  • ISBN13:

    9780321635372

  • ISBN10:

    032163537X

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2009-06-09
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99 Save up to $9.40
  • Digital
    $30.59
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

New techniques for building more secure, reliable, high-performance software, from the renowned creator of the C++ STL- A truly foundational book on the discipline of generic programming: how to write better software by mastering the development of abstract components.- Based on Alexander Stepanov's breakthrough lectures to programmers at Adobe and throughout Silicon Valley.- For serious software developers, architects, and engineers, the perfect complement to Knuth's theory and Stoustrup's practice. Elements of Programming is the next breakthrough book for serious practitioners seeking ways to write better software. In this book, Alexander Stepanov - the legendary architect and creator of the C++ Standard Template Libraries - focuses on the discipline that offers the greatest potential for improving contemporary software: the proper development of abstract components. Drawing on his enormously popular lectures to programmers at Adobe and throughout Silicon Valley, Stepanov illuminates crucial techniques of generic programming, specifically focusing on abstraction as the key to secure, reliable, and high-performance software. Together with co-author and ACM Fellow Paul McJones, Stepanov shows programmers how to use mathematics to compose reliable algorithms from components, and to design effective interfaces between algorithms and data structures. Topics covered in Elements of Programming include: transformations, associative operations, linear orderings, ordered algebraic structures, iterators, coordinates and coordinate structures, copying algorithms, rearrangement, sorting, and much more. This book requires an understanding of mathematics, but is consistently focused on identifying superior solutions to practical programming problems. Stepanov and McJones illuminate their concepts and techniques with C++ code, but the techniques are equally applicable to a wide range of contemporary object-oriented languages.

Author Biography

Alexander 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, Brooklyn Polytechnic, AT&T,HP, SGI, and, since 2002, Adobe. In 1995 he received the Dr. Dobb’s Journal Excellence in Programming Award for the design of the C++ Standard Template Library.

Paul McJones
studied engineering mathematics at the University of California, Berkeley, from 1967 to 1971. He has been programming since 1967 in the areas of operating systems, programming environments, transaction processing systems, and enterprise and consumer applications. He has been employed by the University of California, IBM, Xerox, Tandem, DEC, and, since 2003, Adobe. In 1982 he and his coauthors received the ACM Programming Systems and Languages Paper Award for their paper “The Recovery Manager of the System R Database Manager.”

Table of Contents

Prefacep. ix
About the Authorsp. xiii
Foundationsp. 1
Categories of Ideas: Entity, Species, Genusp. 1
Valuesp. 2
Objectsp. 4
Proceduresp. 6
Regular Typesp. 6
Regular Proceduresp. 8
Conceptsp. 10
Conclusionsp. 14
Transformations and Their Orbitsp. 15
Transformationsp. 15
Orbitsp. 18
Collision Pointp. 21
Measuring Orbit Sizesp. 27
Actionsp. 28
Conclusionsp. 29
Associative Operationsp. 31
Associativityp. 31
Computing Powersp. 33
Program Transformationsp. 35
Special-Case Proceduresp. 39
Parameterizing Algorithmsp. 42
Linear Recurrencesp. 43
Accumulation Proceduresp. 46
Conclusionsp. 47
Linear Orderingsp. 49
Classification of Relationsp. 49
Total and Weak Orderingsp. 51
Order Selectionp. 52
Natural Total Orderingp. 61
Clusters of Derived Proceduresp. 62
Extending Order-Selection Proceduresp. 63
Conclusionsp. 63
Ordered Algebraic Structuresp. 65
Basic Algebraic Structuresp. 65
Ordered Algebraic Structuresp. 70
Remainderp. 71
Greatest Common Divisorp. 76
Generalizing gcdp. 79
Stein gcdp. 81
Quotientp. 81
Quotient and Remainder for Negative Quantitiesp. 83
Concepts and Their Modelsp. 85
Computer Integer Typesp. 87
Conclusionsp. 88
Iteratorsp. 89
Readabilityp. 89
Iteratorsp. 90
Rangesp. 92
Readable Rangesp. 95
Increasing Rangesp. 103
Forward Iteratorsp. 106
Indexed Iteratorsp. 110
Bidirectional Iteratorsp. 111
Random-Access Iteratorsp. 113
Conclusionsp. 114
Coordinate Structuresp. 115
Bifurcate Coordinatesp. 115
Bidirectional Bifurcate Coordinatesp. 119
Coordinate Structuresp. 124
Isomorphism, Equivalence, and Orderingp. 124
Conclusionsp. 131
Coordinates with Mutable Successorsp. 133
Linked Iteratorsp. 133
Link Rearrangementsp. 134
Applications of Link Rearrangementsp. 140
Linked Bifurcate Coordinatesp. 143
Conclusionsp. 148
Copyingp. 149
Writabilityp. 149
Position-Based Copyingp. 151
Predicate-Based Copyingp. 157
Swapping Rangesp. 164
Conclusionsp. 168
Rearrangementsp. 169
Permutationsp. 169
Rearrangementsp. 172
Reverse Algorithmsp. 174
Rotate Algorithmsp. 178
Algorithm Selectionp. 186
Conclusionsp. 189
Partition and Mergingp. 191
Partitionp. 191
Balanced Reductionp. 198
Mergingp. 202
Conclusionsp. 208
Composite Objectsp. 209
Simple Composite Objectsp. 209
Dynamic Sequencesp. 216
Underlying Typep. 222
Conclusionsp. 225
Afterwordp. 227
Mathematical Notationp. 231
Programming Languagep. 233
Language Definitionp. 233
Macros and Trait Structuresp. 240
Bibliographyp. 243
Indexp. 247
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program