Why study theory of computation?