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.)

Operations Management
Operations Management
Operation is that part of as organization, which is concerned with the transformation of a range of inputs into the required output (services) having the requisite quality level. Management is the process, which combines and transforms various resources used in the operations subsystem of the organization into value added services in...
C# Bible
C# Bible
100omprehensive, the C# Bible will have even beginning programmers up and running with Microsoft's new C# language quickly and easily. But this title does not stop at just presenting the C# language - it teaches practical application development in the new .NET Framework. Starting at ground zero, readers will benefit from veteran developer Jeff...
Fast SOA: The way to use native XML technology to achieve Service Oriented Architecture governance, scalability, and performance
Fast SOA: The way to use native XML technology to achieve Service Oriented Architecture governance, scalability, and performance
FastSOA is a great book with lots of meat on the bones and practical real-world XML and SOA knowledge. Much of what passes for SOA right now is simply block diagrams and vague exhortations to get the architecture right. Frank Cohen gives a practical guide to what software developers, architects, and CIOs have to do to deliver highly scalable,...

Microsoft Azure IAAS Essentials
Microsoft Azure IAAS Essentials

Design, configure, and build your cloud-based infrastructure using Microsoft Azure

About This Book

  • Deploy both Windows-based and Linux-based virtual machines to Microsoft Azure
  • Utilize SQL Server Azure to build a robust, highly available solution that can be recovered in the event of...
Ruby Under a Microscope: An Illustrated Guide to Ruby Internals
Ruby Under a Microscope: An Illustrated Guide to Ruby Internals

Ruby is a powerful programming language with a focus on simplicity, but beneath its elegant syntax it performs countless unseen tasks.

Ruby Under a Microscope gives you a hands-on look at Ruby's core, using extensive diagrams and thorough explanations to show you how Ruby is implemented (no C skills
...

PHP|Architect's Guide to PHP Design Patterns
PHP|Architect's Guide to PHP Design Patterns
You have probably heard a lot about Design Patterns—a technique that helps you design rock-solid solutions to practical problems that programmers everywhere encounter in their day-to-day work.

Even though there has been a lot of buzz, however, no-one has yet come up with a comprehensive resource on design patterns for PHP...

©2019 LearnIT (support@pdfchm.net) - Privacy Policy