,

C Interfaces and Implementations

Techniques for Creating Reusable Software

Paperback Engels 1997 9780201498417
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Every programmer and software project manager must master the art of creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.

Features of C Interfaces and Implementations:

Concise interface descriptions that comprise a reference manual for programmers interested in using the interfaces.

A guided tour of the code that implements each chapter's interface tp help those modifying or extending an interface or designing related interfaces.

In-depth focus on "algorithm engineering:" how to package data structures and related algorithms into reusable modules.

Source code for 24 APIs and 8 sample applications is examined, with each presented as a "literate program" in which a thorough explanation is interleaved with the source code.

Rarely documented C programming tricks-of-the-trade.

Convenient access to all source code in the book via the World Wide Web at http://www.cs.princeton.edu/software/cii/

0201498413B04062001

Specificaties

ISBN13:9780201498417
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

<p><strong>Preface xi</strong><br> Organization xiii<br> Instructional Use xiv<br> How to Get the Software xvi<br> Acknowledgments xvii<br> <strong>Chapter 1: Introduction 1</strong><br> 1.1 Literate Programs 2<br> 1.2 Programming Style 8<br> 1.3 Efficiency 11<br> Further Reading 12<br> Exercises 13<br> <strong>Chapter 2: Interfaces and Implementations 15</strong><br> 2.1 Interfaces 15<br> 2.2 Implementations 18<br> 2.3 Abstract Data Types 21<br> 2.4 Client Responsibilities 24<br> 2.5 Efficiency 30<br> Further Reading 30<br> Exercises 31<br> <strong>Chapter 3: Atoms 33</strong><br> 3.1 Interface 33<br> 3.2 Implementation 34<br> Further Reading 42<br> Exercises 42<br> <strong>Chapter 4: Exceptions and Assertions 45</strong><br> 4.1 Interface 47<br> 4.2 Implementation 53<br> 4.3 Assertions 59<br> Further Reading 63<br> Exercises 64<br> <strong>Chapter 5: Memory Management 67</strong><br> 5.1 Interface 69<br> 5.2 Production Implementation 73<br> 5.3 Checking Implementation 76<br> Further Reading 85<br> Exercises 86<br> <strong>Chapter 6: More Memory Management 89</strong><br> 6.1 Interface 90<br> 6.2 Implementation 92<br> Further Reading 98<br> Exercises 100<br> <strong>Chapter 7: Lists 103</strong><br> 7.1 Interface 103<br> 7.2 Implementation 108<br> Further Reading 113<br> Exercises 114<br> <strong>Chapter 8: Tables 115</strong><br> 8.1 Interface 115<br> 8.2 Example: Word Frequencies 118<br> 8.3 Implementation 125<br> Further Reading 132<br> Exercises 133<br> <strong>Chapter 9: Sets 137</strong><br> 9.1 Interface 138<br> 9.2 Example: Cross-Reference Listings 140<br> 9.3 Implementation 148<br> Further Reading 158<br> Exercises 158<br> <strong>Chapter 10: Dynamic Arrays 161</strong><br> 10.1 Interfaces 162<br> 10.2 Implementation 165<br> Further Reading 169<br> Exercises 169<br> <strong>Chapter 11: Sequences 171</strong><br> 11.1 Interface 171<br> 11.2 Implementation 174<br> Further Reading 180<br> Exercises 180<br> <strong>Chapter 12: Rings 183</strong><br> 12.1 Interface 183<br> 12.2 Implementation 187<br> Further Reading 196<br> Exercises 197<br> <strong>Chapter 13: Bit Vectors 199</strong><br> 13.1 Interface 199<br> 13.2 Implementation 202<br> Further Reading 213<br> Exercises 213<br> <strong>Chapter 14: Formatting 215</strong><br> 14.1 Interface 216<br> 14.2 Implementation 224<br> Further Reading 238<br> Exercises 239<br> <strong>Chapter 15: Low-Level Strings 241</strong><br> 15.1 Interface 243<br> 15.2 Example: Printing Identifiers 249<br> 15.3 Implementation 251<br> Further Reading 264<br> Exercises 265<br> <strong>Chapter 16: High-Level Strings 269</strong><br> 16.1 Interface 269<br> 16.2 Implementation 276<br> Further Reading 293<br> Exercises 294<br> <strong>Chapter 17. Extended-Precision Arithmetic 297</strong><br> 17.1 Interface 297<br> 17.2 Implementation 303<br> Further Reading 321<br> Exercises 322<br> <strong>Chapter 18: Arbitrary-Precision Arithmetic 323</strong><br> 18.1 Interface 323<br> 18.2 Example: A Calculator 327<br> 18.3 Implementation 334<br> Further Reading 353<br> Exercises 354<br> <strong>Chapter 19: Multiple-Precision Arithmetic 357</strong><br> 19.1 Interface 358<br> 19.2 Example: Another Calculator 365<br> 19.3 Implementation 373<br> Further Reading 402<br> Exercises 402<br> <strong>Chapter 20: Threads 405</strong><br> 20.1 Interfaces 408<br> 20.2 Examples 418<br> 20.3 Implementations 431<br> Further Reading 463<br> Exercises 465<br> <strong>Appendix: Interface Summary 469</strong><br> <strong>Bibliography 497</strong><br> <strong>Index 505</strong></p>

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        C Interfaces and Implementations