Корично изображение Книга

Elements of programming /

A truly foundational book on the discipline of generic programming reveals how to write better software by mastering the development of abstract components. The authors show programmers how to use mathematics to compose reliable algorithms from components, and to design effective interfaces between...

Пълно описание

Основен автор: Stepanov, Alexander A.
Други автори: McJones, Paul.
Формат: Книга
Език: English
Публикувано: Upper Saddle River, NJ : Addison-Wesley, ©2009.
Предмети:
Съдържание:
  • Preface Chapter 1: Foundations 1.1 Categories of ideas: entity, species, genus 1.2 Values 1.3 Objects 1.4 Procedures 1.5 Regular types 1.6 Regular procedures 1.7 Concepts 1.8 Conclusions Chapter 2: Transformations and their orbits 2.1 Transformations 2.2 Orbits 2.3 Collision point 2.4 Measuring orbit sizes 2.5 Actions 2.6 Conclusions Chapter 3: Associative operations 3.1 Associativity 3.2 Computing powers 3.3 Program transformations 3.4 Special-case procedures 3.5 Parameterizing algorithms 3.6 Linear recurrences 3.7 Accumulation procedures 3.8 Conclusions Chapter 4: Linear orderings 4.1 Classification of relations 4.2 Total and weak orderings 4.3 Order selection 4.4 Natural total ordering 4.5 Clusters of derived procedures 4.6 Extending order selection procedures 4.7 Conclusions Chapter 5: Ordered algebraic structures 5.1 Basic algebraic structures 5.2 Ordered algebraic structures 5.3 Remainder 5.4 Greatest common divisor 5.5 Generalizing gcd 5.6 Stein gcd 5.7 Quotient 5.8 Quotient and remainder for negative quantities 5.9 Concepts and their models 5.10 Computer integer types 5.11 Conclusions Chapter 6: Iterators 6.1 Readability 6.2 Iterators 6.3 Ranges 6.4 Readable ranges 6.5 Increasing ranges 6.6 Forward iterators 6.7 Indexed iterators 6.8 Bidirectional iterators 6.9 Random access iterators 6.10 Conclusions Chapter 7: Coordinate structures 7.1 Bifurcate coordinates 7.2 Bidirectional bifurcate coordinates 7.3 Coordinate structures 7.4 Isomorphism, equivalence, and ordering 7.5 Conclusions Chapter 8: Coordinates with mutable successors 8.1 Linked iterators 8.2 Link rearrangement 8.3 Applications of link rearrangements 8.4 Linked bifurcate coordinates 8.5 Conclusions Chapter 9: Copying 9.1 Writability 9.2 Position-based copying 9.3 Predicate-based copyin 9.4 Swapping ranges 9.5 Conclusions Chapter 10 Rearrangements 10.1 Permutations 10.2 Rearrangements 10.3 Reverse algorithms 10.4 Rotate algorithms 10.5 Algorithm selection 10.6 Conclusions Chapter 11: Partition and merging 11.1 Partition 11.2 Balanced reduction 11.3 Merging 11.4 Conclusions Chapter 12: Composite objects 12.1 Simple composite objects 12.2 Dynamic sequences 12.3 Underlying type 12.4 Conclusions Afterword Appendix A: Mathematical notation Appendix B: Programming language B.1 Language definition B.2 Macros and trait structures Bibliography Index.