This book presents and applies a framework for studying the complexity of algorithms. It is aimed at logicians, computer scientists, mathematicians and philosophers interested in the theory of computation and its foundations, and it is written at a level suitable for non-specialists. Part I provides an accessible introduction to abstract recursion theory and its connection with computability and complexity. This part is suitable for use as a textbook...