Sciweavers


Book

Object Oriented Programming with ANSI-C

15 years 10 months ago
Object Oriented Programming with ANSI-C
"This book is not going to praise object-oriented programming or condemn the Old Way. We are simply going to use ANSI-C to discover how object-oriented programming is done, what its techniques are, why they help us solve bigger problems, and how we harness generality and program to catch mistakes earlier. Along the way we encounter all the jargon — classes, inheritance, instances, linkage, methods, objects, polymorphisms, and more — but we take it out of the realm of magic and see how it translates into the things we have known and done all along."
Axel-Tobias Schreiner
Added 14 Feb 2009
Updated 14 Feb 2009
Authors Axel-Tobias Schreiner

Table of Contents

Preface
1 Abstract Data Types — Information Hiding
1.1 Data Types
1.2 Abstract Data Types
1.3 An Example — Set
1.4 Memory Management
1.5 Object
1.6 An Application
1.7 An Implementation — Set
1.8 Another Implementation — Bag
1.9 Summary
1.10 Exercises
2 Dynamic Linkage — Generic Functions
2.1 Constructors and Destructors
2.2 Methods, Messages, Classes and Objects
2.3 Selectors, Dynamic Linkage, and Polymorphisms
2.4 An Application
2.5 An Implementation — String
2.6 Another Implementation — Atom
2.7 Summary
2.8 Exercises
3 Programming Savvy — Arithmetic Expressions
3.1 The Main Loop
3.2 The Scanner
3.3 The Recognizer
3.4 The Processor
3.5 Information Hiding
3.6 Dynamic Linkage
3.7 A Postfix Writer
3.8 Arithmetic
3.9 Infix Output
3.10 Summary
4 Inheritance — Code Reuse and Refinement
4.1 A Superclass — Point
4.2 Superclass Implementation — Point
4.3 Inheritance — Circle
4.4 Linkage and Inheritance
4.5 Static and Dynamic Linkage
4.6 Visibility and Access Functions
4.7 Subclass Implementation — Circle
4.8 Summary
4.9 Is It or Has It? — Inheritance vs. Aggregates
4.10 Multiple Inheritance
4.11 Exercises
5 Programming Savvy — Symbol Table
5.1 Scanning Identifiers
5.2 Using Variables
5.3 The Screener — Name
5.4 Superclass Implementation — Name
5.5 Subclass Implementation — Var
5.6 Assignment
5.7 Another Subclass — Constants
5.8 Mathematical Functions — Math
5.9 Summary
5.10 Exercises
6 Class Hierarchy — Maintainability
6.1 Requirements
6.2 Metaclasses
6.3 Roots — Object and Class
6.4 Subclassing — Any
6.5 Implementation — Object
6.6 Implementation — Class
6.7 Initialization
6.8 Selectors
6.9 Superclass Selectors
6.10 A New Metaclass — PointClass
6.11 Summary
7 The ooc Preprocessor — Enforcing a Coding Standard
7.1 Point Revisited
7.2 Design
7.3 Preprocessing
7.4 Implementation Strategy
7.5 Object Revisited
7.6 Discussion
7.7 An Example — List, Queue, and Stack
7.8 Exercises
8 Dynamic Type Checking — Defensive Programming
8.1 Technique
8.2 An Example — list
8.3 Implementation
8.4 Coding Standard
8.5 Avoiding Recursion
8.6 Summary
8.7 Exercises
9 Static Construction— Self-Organization
9.1 Initialization
9.2 Initializer Lists — munch
9.3 Functions for Objects
9.4 Implementation
9.5 Summary
9.6 Exercises
10 Delegates — Callback Functions
10.1 Callbacks
10.2 Abstract Base Classes
10.3 Delegates
10.4 An Application Framework — Filter
10.5 The respondsTo Method
10.6 Implementation
10.7 Another application — sort
10.8 Summary
10.9 Exercises
11 Class Methods— Plugging Memory Leaks
11.1 An Example
11.2 Class Methods
11.3 Implementing Class Methods
11.4 Programming Savvy — A Classy Calculator
11.5 Summary
11.6 Exercises
12 Persistent Objects — Storing and Loading Data Structures
12.1 An Example
12.2 Storing Objects — puto()
12.3 Filling Objects — geto()
12.4 Loading Objects — retrieve()
12.5 Attaching Objects — value Revisited
12.6 Summary
12.7 Exercises
13 Exceptions — Disciplined Error Recovery
13.1 Strategy
13.2 Implementation — Exception
13.3 Examples
13.4 Summary
13.5 Exercises
14 Forwarding Messages — A GUI Calculator
14.1 The Idea
14.2 Implementation
14.3 Object-Oriented Design by Example
14.4 Implementation — Ic
14.5 A Character-Based Interface — curses
14.6 A Graphical Interface — Xt
14.7 Summary
14.8 Exercises
A ANSI-C Programming Hints
A.1 Names and Scope
A.2 Functions
A.3 Generic Pointers — void *
A.4 const
A.5 typedef and const
A.6 Structures
A.7 Pointers to Functions
A.8 Preprocessor
A.9 Verification — assert.h
A.10 Global Jumps — setjmp.h
A.11 Variable Argument Lists — stdarg.h
A.12 Data Types — stddef.h
A.13 Memory Management — stdlib.h
A.14 Memory Functions — string.h
B The ooc Preprocessor — Hints on awk Programming
B.1 Architecture
B.2 File Management — io.awk
B.3 Recognition — parse.awk
B.4 The Database
B.5 Report Generation — report.awk
B.6 Line Numbering
B.7 The Main Program — main.awk
B.8 Report Files
B.9 The ooc Command
C Manual
C.1 Commands
C.2 Functions
C.3 Root Classes
C.4 GUI Calculator Classes
Bibliography 
Comments (0)