Theory of computation - Sipser, Michael (Thomson Course Technology, 2007)