Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
C Interfaces and Implementations: Techniques for Creating Reusable Software

Buy

Programmers are inundated with information about application programming interfaces, or APIs. Yet, while most programmers use APIs and the libraries that implement them in almost every application they write, relatively few create and disseminate new, widely applicable, APIs. Indeed, programmers seem to prefer to “roll their own” instead of searching for a library that might meet their needs, perhaps because it is easier to write application-specific code than to craft welldesigned APIs.

I’m as guilty as the next programmer: lcc, a compiler for ANSI/ISO C written by Chris Fraser and myself, was built from the ground up. (lcc is described in A Retargetable C Compiler: Design and Implementation, Addison-Wesley, 1995.) A compiler exemplifies the kind of application for which it is possible to use standard interfaces and to create interfaces that are useful elsewhere. Examples include interfaces for memory management, string and symbol tables, and list manipulation. But lcc uses only a few routines from the standard C library, and almost none of its code can be used directly in other applications.

This book advocates a design methodology based on interfaces and their implementations, and it illustrates this methodology by describing 24 interfaces and their implementations in detail. These interfaces span a large part of the computing spectrum and include data structures, arithmetic, string processing, and concurrent programming. The implementations aren’t toys — they’re designed for use in production code. As described below, the source code is freely available.

There’s little support in the C programming language for the interfacebased design methodology. Object-oriented languages, like C++ and Modula-3, have language features that encourage the separation of an interface from its implementation. Interface-based design is independent of any particular language, but it does require more programmer willpower and vigilance in languages like C, because it’s too easy to pollute an interface with implicit knowledge of its implementation and vice versa.

(HTML tags aren't allowed.)

Beyond the Core: Expand Your Market Without Abandoning Your Roots
Beyond the Core: Expand Your Market Without Abandoning Your Roots
In this text, the author outlines an expansion strategy based on putting together combinations of adjacency moves into areas away from, but related to, the core business, such as new product lines or new channels of distribution.

Growth is not a choice—it’s an imperative. But the risks are substantial. Only a quarter of all...

Concurrent Programming: Algorithms, Principles, and Foundations
Concurrent Programming: Algorithms, Principles, and Foundations

The advent of new architectures and computing platforms means that synchronization and concurrent computing are among the most important topics in computing science. Concurrent programs are made up of cooperating entities -- processors, processes, agents, peers, sensors -- and synchronization is the set of concepts, rules and mechanisms that...

Effective Teaching with Internet Technologies: Pedagogy and Practice
Effective Teaching with Internet Technologies: Pedagogy and Practice
All schools now have internet access, but the potential of internet technology as a teaching and learning tool is still far from fully realised. This timely book helps teachers develop pedagogical skills in using the internet through a series of case studies of good practice, all of which are based on extensive classroom research. Accessible...

Algorithms, Architectures and Information Systems Security (Statistical Science and Interdisciplinary Research: Platinum Jubilee)
Algorithms, Architectures and Information Systems Security (Statistical Science and Interdisciplinary Research: Platinum Jubilee)
This volume contains articles written by leading researchers in the fields of algorithms, architectures, and information systems security. The first five chapters address several challenging geometric problems and related algorithms. These topics have major applications in pattern recognition, image analysis, digital geometry, surface...
Britain and European Integration since 1945: On the Sidelines
Britain and European Integration since 1945: On the Sidelines

This book provides both a comprehensive introduction and a perceptive examination of Britain’s relations with the European Community and the European Union since 1945, combining an historical account with political analysis to illustrate the changing and multifaceted nature of British and European politics.

Few issues in British...

Programming Hive
Programming Hive
Programming Hive introduces Hive, an essential tool in the Hadoop ecosystem that provides an SQL (Structured Query Language) dialect for querying data stored in the Hadoop Distributed Filesystem (HDFS), other filesystems that integrate with Hadoop, such as MapR-FS and Amazon’s S3 and databases like HBase (the...
©2021 LearnIT (support@pdfchm.net) - Privacy Policy