Theory of computing systems (Springer, 1997)