Computability and complexity: from a programming perspective - Jones, Neil D. (Foundations of Computing., 1997)