Chapter 3: Paradigm Overview
The three programming paradigms — structured, object-oriented, and functional — each impose discipline by removing capabilities from the programmer. Martin shows how each paradigm maps directly to a fundamental concern of software architecture.