INTRODUCTION TO LANGUAGE AND THE THEORY OF COMPUTATION - JOHN, MARTIN (2003)