What is included with this book?
Diomidis Spinellis has been developing the concepts presented in this book since 1985, while also writing groundbreaking software applications and working on multimillion-line code bases. Spinellis holds an M.Eng. degree in software engineering and a Ph.D. in computer science from Imperial College London. Currently he is an associate professor in the Department of Management Science and Technology at the Athens University of Economics and Business.
Foreword | |
Preface | |
Introduction | |
Why and How to Read Code | |
Code as Literature | |
Code as Exemplar | |
Maintenance | |
Evolution | |
Reuse | |
Inspections | |
How to Read this Book | |
Typographical Conventions | |
Diagrams | |
Exercises | |
Supplementary Material | |
Tools | |
Outline | |
The Great Language Debate | |
Basic Programming Elements | |
A Complete Program | |
Functions and Global Variables | |
While, Conditions, Blocks | |
Switch | |
For | |
Break, Continue | |
Character and Boolean Expressions | |
Goto | |
Refactoring in the Small | |
Do, Integer Expressions | |
Control Structures Revisited | |
Advanced C Data Types | |
Pointers | |
Linked Data Structures | |
Dynamic Allocation of Data Structures | |
Call by Reference | |
Data Element Access | |
Arrays as Arguments and Results | |
Function Pointers | |
Pointer as an Alias | |
Pointers and Strings | |
Direct Memory Access | |
Structures | |
Grouping Together Data Elements | |
Returning Multiple Data Elements from a Function | |
Mapping the Organization of Data | |
Programming in an Object-Oriented Fashion | |
Unions | |
Efficient Use of Storage | |
Implementing Polymorphism | |
Accessing Different Internal Representations | |
Dynamic Memory Allocation | |
Managing Free Memory | |
Structures with Dynamically-Allocated Arrays | |
Typedef Declarations | |
C Data Structures | |
Vector | |
Matrix and Table | |
Stack | |
Queue | |
Map | |
Hash Tables | |
Set | |
Linked List | |
Tree | |
Graph | |
Node Storage | |
Edge Representation | |
Edge Storage | |
Graph Properties | |
Hidden Structures | |
Other Representations | |
Advanced Control Flow | |
Recursion | |
Exceptions | |
Parallelism | |
Hardware and Software Parallelism | |
Control Models | |
Thread Implementations | |
Signals | |
Nonlocal Jumps | |
Macro Substitution | |
Tackling Large Projects | |
Design and Implementation Techniques | |
Project Organization | |
The Build Process and Makefiles | |
Configuration | |
Revision Control | |
Project-Specific Tools | |
Testing | |
Coding Standards and Conventions | |
File Names and Organization | |
Indentation | |
Formatting | |
Naming Conventions | |
Programming Practices | |
Process Standards | |
Documentation | |
Documentation Types | |
Reading Documentation | |
Documentation Problems | |
Additional Documentation Sources | |
Common Open-Source Documentation Formats | |
Architecture | |
System Structures | |
Centralized Repository and Distributed Approaches | |
Data-Flow | |
Object-Oriented | |
Layered | |
Hierarchies | |
Slicing | |
Control Models | |
Event-Driven Systems | |
System Manager | |
State Transition | |
Element Packaging | |
Module | |
Namespace | |
Object | |
Generic Implementation | |
Abstract Data Type | |
Library | |
Process and Filter | |
Component | |
Data Repository | |
Architecture Reuse | |
Frameworks | |
Code Wizards | |
Design Patterns | |
Domain-Specific Architectures | |
Code-Reading Too | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.