Elements of programming
By: Alexander Stepanov, Paul McJones.
Contributors: McJones, Paul.
Publisher: Addison-Wesley
Published: 2009
Place of publication: Upper Saddle River, NJ
Language: eng
Format: Hardcover
Number of pages: 276
Subjects: Computer programming; Computer algorithms
Notes: Includes bibliographical references and index.
Table of contents: title: Preface
pagenum: ix; title: About the Authors
pagenum: xiii; label: 1
title: Foundations
pagenum: 1; label: 1.1
title: Categories of Ideas: Entity, Species, Genus
pagenum: 1; label: 1.2
title: Values
pagenum: 2; label: 1.3
title: Objects
pagenum: 4; label: 1.4
title: Procedures
pagenum: 6; label: 1.5
title: Regular Types
pagenum: 6; label: 1.6
title: Regular Procedures
pagenum: 8; label: 1.7
title: Concepts
pagenum: 10; label: 1.8
title: Conclusions
pagenum: 14; label: 2
title: Transformations and Their Orbits
pagenum: 15; label: 2.1
title: Transformations
pagenum: 15; label: 2.2
title: Orbits
pagenum: 18; label: 2.3
title: Collision Point
pagenum: 21; label: 2.4
title: Measuring Orbit Sizes
pagenum: 27; label: 2.5
title: Actions
pagenum: 28; label: 2.6
title: Conclusions
pagenum: 29; label: 3
title: Associative Operations
pagenum: 31; label: 3.1
title: Associativity
pagenum: 31; label: 3.2
title: Computing Powers
pagenum: 33; label: 3.3
title: Program Transformations
pagenum: 35; label: 3.4
title: Special-Case Procedures
pagenum: 39; label: 3.5
title: Parameterizing Algorithms
pagenum: 42; label: 3.6
title: Linear Recurrences
pagenum: 43; label: 3.7
title: Accumulation Procedures
pagenum: 46; label: 3.8
title: Conclusions
pagenum: 47; label: 4
title: Linear Orderings
pagenum: 49; label: 4.1
title: Classification of Relations
pagenum: 49; label: 4.2
title: Total and Weak Orderings
pagenum: 51; label: 4.3
title: Order Selection
pagenum: 52; label: 4.4
title: Natural Total Ordering
pagenum: 61; label: 4.5
title: Clusters of Derived Procedures
pagenum: 62; label: 4.6
title: Extending Order-Selection Procedures
pagenum: 63; label: 4.7
title: Conclusions
pagenum: 63; label: 5
title: Ordered Algebraic Structures
pagenum: 65; label: 5.1
title: Basic Algebraic Structures
pagenum: 65; label: 5.2
title: Ordered Algebraic Structures
pagenum: 70; label: 5.3
title: Remainder
pagenum: 71; label: 5.4
title: Greatest Common Divisor
pagenum: 76; label: 5.5
title: Generalizing gcd
pagenum: 79; label: 5.6
title: Stein gcd
pagenum: 81; label: 5.7
title: Quotient
pagenum: 81; label: 5.8
title: Quotient and Remainder for Negative Quantities
pagenum: 83; label: 5.9
title: Concepts and Their Models
pagenum: 85; label: 5.10
title: Computer Integer Types
pagenum: 87; label: 5.11
title: Conclusions
pagenum: 88; label: 6
title: Iterators
pagenum: 89; label: 6.1
title: Readability
pagenum: 89; label: 6.2
title: Iterators
pagenum: 90; label: 6.3
title: Ranges
pagenum: 92; label: 6.4
title: Readable Ranges
pagenum: 95; label: 6.5
title: Increasing Ranges
pagenum: 103; label: 6.6
title: Forward Iterators
pagenum: 106; label: 6.7
title: Indexed Iterators
pagenum: 110; label: 6.8
title: Bidirectional Iterators
pagenum: 111; label: 6.9
title: Random-Access Iterators
pagenum: 113; label: 6.10
title: Conclusions
pagenum: 114; label: 7
title: Coordinate Structures
pagenum: 115; label: 7.1
title: Bifurcate Coordinates
pagenum: 115; label: 7.2
title: Bidirectional Bifurcate Coordinates
pagenum: 119; label: 7.3
title: Coordinate Structures
pagenum: 124; label: 7.4
title: Isomorphism, Equivalence, and Ordering
pagenum: 124; label: 7.5
title: Conclusions
pagenum: 131; label: 8
title: Coordinates with Mutable Successors
pagenum: 133; label: 8.1
title: Linked Iterators
pagenum: 133; label: 8.2
title: Link Rearrangements
pagenum: 134; label: 8.3
title: Applications of Link Rearrangements
pagenum: 140; label: 8.4
title: Linked Bifurcate Coordinates
pagenum: 143; label: 8.5
title: Conclusions
pagenum: 148; label: 9
title: Copying
pagenum: 149; label: 9.1
title: Writability
pagenum: 149; label: 9.2
title: Position-Based Copying
pagenum: 151; label: 9.3
title: Predicate-Based Copying
pagenum: 157; label: 9.4
title: Swapping Ranges
pagenum: 164; label: 9.5
title: Conclusions
pagenum: 168; label: 10
title: Rearrangements
pagenum: 169; label: 10.1
title: Permutations
pagenum: 169; label: 10.2
title: Rearrangements
pagenum: 172; label: 10.3
title: Reverse Algorithms
pagenum: 174; label: 10.4
title: Rotate Algorithms
pagenum: 178; label: 10.5
title: Algorithm Selection
pagenum: 186; label: 10.6
title: Conclusions
pagenum: 189; label: 11
title: Partition and Merging
pagenum: 191; label: 11.1
title: Partition
pagenum: 191; label: 11.2
title: Balanced Reduction
pagenum: 198; label: 11.3
title: Merging
pagenum: 202; label: 11.4
title: Conclusions
pagenum: 208; label: 12
title: Composite Objects
pagenum: 209; label: 12.1
title: Simple Composite Objects
pagenum: 209; label: 12.2
title: Dynamic Sequences
pagenum: 216; label: 12.3
title: Underlying Type
pagenum: 222; label: 12.4
title: Conclusions
pagenum: 225; title: Afterward
pagenum: 227; label: Appendix A
title: Mathematical Notation
pagenum: 231; label: Appendix B
title: Programming Language
pagenum: 233; label: B.1
title: Language Definition
pagenum: 233; label: B.2
title: Maros and Trait Structures
pagenum: 240; title: Bibliography
pagenum: 243; title: Index
pagenum: 247