Preface Acknowledgments Credits PART Ⅰ INTRODUCTION 1 Why study the Theory of Computation? 2 Languages and Strings 3 The Big Picture: A Language Hierarchy 4 Computation PART Ⅱ FINITE STATE MACHINES AND REGULAR LANGUAGES 5 Finite State Machines 6 Regular Expressions 7 Regular Grammars 8 Regular and Nonregular Languages 9 Algorithms and Decision Procedures for Regualr Languages 10 Summary and Reference PART Ⅲ CONTEXT-FREE LANGUAGES AND PUSHDOWN AUTOMATA 11 Context-Free Grammars 12 Rushdown Automata 13 Context-Free and Noncontext-Free Languages 14 Algorithms and Decision procedures for Context-Free Languages 15 Context-Free Parsing 16 Summary and references PART Ⅳ TURING MACHINES AND UNDECIDABILITY 17 Turing Machines 18 The Church-Turing Thesis 19 The Church-Turing Thesis 20 Decidable and Semidecidable Languages 21 Decidability and Undecidability Proofs …… PART Ⅴ COMPLEXITY APPENDICES APPENDICES G-Q: APPLICATIONS