
| Alexander Stepanov于1967~1972年间在莫斯科国立大学学习数学,从1972年开始在苏联,1977年移民美国后在美国从事编程工作。他编写过操作系统、编程工具、编译器和各种库。他在程序设计基础方面的工作先后得到GE、Polytechnic、AT&T、惠普、Silicon Graphics的支持,2002年后是Adobe的支持。1995年因C++标准模板库的设计获Dr.Dobb的程序设计杰出贡献奖。 Paul McJones于1967~1971年间在加州大学伯克利分校学习工程数学。从1967年开始介入程序设计,涉足的领域包括操作系统、程序设计环境、事务处理系统以及企业和客户应用系统等。他先后在加州大学、IBM、Xerox、Tandem、DEC工作,2003年至今在Adobe公司。1982年他与合作者一起因其论文“The Recovery Manager of the System R Database Manager”获得ACM程序设计系统和语言论文奖。 |
| Preface ix About the Authors xiii 1 Foundation 1 1.1 Categories of Ideas: Entity, Species, Genus 1 1.2 Values 2 1.3 Objects 4 1.4 rocedures6 1.5 Regular Types 6 1.6 Regular Procedures 8 1.7 Concepts 10 1.8 Conclusions14 2 TransformationsandTheirOrbits1 5 2.1 Transformations 15 2.2 Orbits 18 2.3 Collision Point 21 2.4 Measuring Orbit Sizes 27 2.5 Actions 28 2.6 Conclusions 29 3 Associative Operations 31 3.1 Associativity 31 3.2 Computing Powers 33 3.3 Program Transformations 35 3.4 Special-Case Procedures 39 3.5 Parameterizing Algorithms 42 3.6 Linear Recurrences 43 3.7 Accumulation Procedures 46 3.8 Conclusions 47 4 Linear Orderings 49 4.1 Classification of Relations 49 4.2 Total and Weak Orderings 51 4.3 Order Selection 52 4.4 Natural Total Ordering 61 4.5 Clusters of Derived Procedures 62 4.6 Extending Order-Selection Procedures 63 4.7 Conclusions 63 5 Ordered Algebraic Structures 65 5.1 Basic Algebraic Structures 65 5.2 Ordered Algebraic Structures 70 5.3 Remainder 71 5.4 Greatest Common Divisor 76 5.5 Generalizinggcd 79 5.6 Steingcd 81 5.7 Quotient 81 5.8 Quotient and Remainder for Negative Quantities 83 5.9 Concepts and Their Models 85 5.10 Computer Integer Types 87 5.11 Conclusions 88 6 Iterators 89 6.1 Readability 89 6.2 Iterators 90 6.3 Ranges 92 6.4 Readable Ranges 95 6.5IncreasingRanges 103 6.6 Forward Iterators 106 6.7 Indexed Iterators 110 6.8 Bidirectional Iterators 111 6.9 Random-Access Iterators 113 6.1 0Conclusions 114 7 Coordinate Structures 115 7.1 ifurcate Coordinates 115 7.2 Bidirectional Bifurcate Coordinates 119 7.3 Coordinate Structures 124 7.4 Isomorphism, Equivalence, and Ordering 124 7.5 Conclusions 131 8 Coordinates with Mutable Successors 133 8.1 Linked Iterators 133 8.2 Link Rearrangements 134 8.3 Applications of Link Rearrangements 140 8.4 Linked Bifurcate Coordinates 143 8.5 Conclusions148 9 Copying 149 9.1 Writability 149 9.2 Position-Based Copying 151 9.3 Predicate-Based Copying 157 9.4 Swapping Ranges 164 9.5 Conclusions 168 10 Rearrangements 169 10.1 Permutations 169 10.2 Rearrangements 172 10.3 Reverse Algorithms 174 10.4 Rotate Algorithms 178 10.5 Algorithm Selection 186 10.6 Conclusions 189 11 Partitionand Merging 191 11.1 Partition 191 11.2 Balanced Reduction 198 11.3 Merging 202 11.4 Conclusions 208 12 Composite Objects 209 12.1 Simple Composite Objects 209 12.2 Dynamic Sequences 216 12.3 Underlying Type 222 12.4 Conclusions 225 Afterword 227 Appendix A Mathematical Notation 231 Appendix B Programming Language 233 B.1 Language Definition 233 B.2 Macros and Trait Structures 240 Bibliography 243 Index 247 |
商品评论(0条)