Introduction / 1: |
Models of computation / 1.1: |
Some non-computable functions / 1.2: |
Further reading / 1.3: |
Exercises / 1.4: |
Traditional Models of Computation / Part I: |
Automata and Turing Machines / 2: |
Formal languages and automata / 2.1: |
Finite automata / 2.2: |
Deterministic and non-deterministic automata / 2.2.1: |
The power of finite automata / 2.2.2: |
Push-down automata / 2.3: |
Turing machines / 2.4: |
Variants of Turing machines / 2.4.1: |
The universal Turing machine / 2.4.2: |
Imperative programming / 2.5: |
The Lambda Calculus / 2.6: |
Lambda-calculus: Syntax / 3.1: |
Computation / 3.2: |
Substitution / 3.2.1: |
Normal forms / 3.2.2: |
Properties of reductions / 3.2.3: |
Reduction strategies / 3.2.4: |
Arithmetic functions / 3.3: |
Booleans / 3.4: |
Recursion / 3.5: |
Functional programming / 3.6: |
Recursive Functions / 3.7: |
Primitive recursive functions / 4.1: |
Partial recursive functions / 4.2: |
Programming with functions / 4.3: |
Logic-Based Models of Computation / 4.4: |
The Herbrand universe / 5.1: |
Logic programs / 5.2: |
Answers / 5.2.1: |
Computing with logic programs / 5.3: |
Unification / 5.3.1: |
The Principle of Resolution / 5.3.2: |
Prolog and the logic programming paradigm / 5.4: |
Modern Models of Computation / 5.5: |
Computing with Objects / 6: |
Object calculus: Syntax / 6.1: |
Reduction rules / 6.2: |
Computation power / 6.3: |
Object-oriented programming / 6.4: |
Combining objects and functions / 6.5: |
Interaction-Based Models of Computation / 6.6: |
The paradigm of interaction / 7.1: |
Numbers and arithmetic operations / 7.2: |
Turing completeness / 7.3: |
More examples: Lists / 7.4: |
Combinators for interaction nets / 7.5: |
Textual languages and strategies for interaction nets / 7.6: |
A textual interaction calculus / 7.6.1: |
Properties of the calculus / 7.6.2: |
Normal forms and strategies / 7.6.3: |
Extensions to model non-determinism / 7.7: |
Concurrency / 7.8: |
Specifying concurrent systems / 8.1: |
Simulation and bisimulation / 8.2: |
A language to write processes / 8.3: |
A language for communicating processes / 8.4: |
Another view of concurrency: The chemical metaphor / 8.5: |
Emergent Models of Computation / 8.6: |
Bio-computing / 9.1: |
Membrane calculi / 9.1.1: |
Protein interaction calculi / 9.1.2: |
Quantum computing / 9.2: |
Answers to Selected Exercises / 9.3: |
Bibliography |
Index |
Introduction / 1: |
Models of computation / 1.1: |
Some non-computable functions / 1.2: |
Further reading / 1.3: |
Exercises / 1.4: |
Traditional Models of Computation / Part I: |