Understanding Computation : A General Theory of Computational Processes