| |
|
|
|
| |
Contents
| In the past ten years, several books have been published on category theory either by computer scientists or having computer scientists as a target audience. Isn’t the working computer scientist spoilt with choice? |
1 Introduction
1.1 The Social Life of Objects
- 1.2 Categories Versus Sets
- 1.3 Overview of Typical Application Areas
- 1.4 What Can Be Found in This Book
|
|
Part 1: Basics
|
Part I covers some of the basics of category theory, including the “bare essentials” that are addressed in any book, from graphs to universal constructions and functors. However, a different emphasis and tone are used that are meant to be more appealing and accessible to software engineers. It is hoped that mathematically mature readers may appreciate a different way of exposing and illustrating these familiar concepts and constructions.
|
2 Introducing Categories
2.1 Graphs
2.2 Categories
2.3 Distinguished Kinds of Morphisms
3 Building Categories
- 3.1 Some Elementary Operations
- 3.2 “Adding Structure”
- 3.3 Subcategories
- 3.4 Eiffel Class Specifications
- 3.5 Temporal Specifications
- 3.6 Closure Systems
4 Universal Constructions
- 4.1 Initial and Terminal Objects
- 4.2 Sums and Products
- 4.3 Pushouts and Pullbacks
- 4.4 Limits and Colimits
5 Functors
- 5.1 The Social Life of Categories
- 5.2 Universal Constructions Versus Functors
|
|
Part 2: Advanced Concepts
|
In Part II, the reader will find material that only a few other books cover in comparable depth, with a strong emphasis on functor-based constructions like fibrations, and ending with a covering of adjunctions that deviates somewhat from the standard coverage. Again, examples are drawn from areas that have normally been confined to papers such as institutions and models of concurrency. |
6 Functor-Based Constructions
-
6.1 Functor-Distinguished Kinds of Categories
- 6.2 Structured Objects and Morphisms
- 6.3 Functor-Structured Categories
- 6.4 The Grothendieck Construction
- 6.5 Institutions
7 Adjunctions
- 7.1 The Social Life of Functors
- 7.2 Reflective Functors
- 7.3 Adjunctions
- 7.4 Adjunctions in Institutions
- 7.5 Coordinated Categories
|
|
Part 3: Applications
|
Part III offers the chance of seeing category theory at work in a more ambitious project – giving semantics to CommUnity, a prototype language for architectural modelling. This part can be ignored by readers who are not particularly interested in the applications to software engineering. On the other hand, it can be followed, to a large extent, without the material exposed in Part II. |
8 CommUnity
- 8.1 A Language for Program Design
- 8.2 Interconnecting Designs
- 8.3 Refining Designs
9 Architectural Description
- 9.1 Motivation
- 9.2 Connectors in CommUnity
- 9.3 Examples
- 9.4 An ADL-Independent Notion of Connector
- 9.5 Adding Abstraction to Connectors
10 An Algebra of Connectors
- 10.1 Three Operations on Connectors
- 10.2 Higher-Order Connectors
|
|
|
|
|
|