## Introduction to languages and the theory of computationIntroduction to Languages and the Theory of Computation is an introduction to the theory of computation that emphasizes formal languages, automata and abstract models of computation, and computability; it also includes an introduction to computational complexity and NP-completeness. Through the study of these topics, students encounter profound computational questions and are introduced to topics that will have an ongoing impact in computer science. Once students have seen some of the many diverse technologies contributing to computer science, they can also begin to appreciate the field as a coherent discipline. A distinctive feature of this text is its gentle and gradual introduction of the necessary mathematical tools in the context in which they are used. Martin takes advantage of the clarity and precision of mathematical language but also provides discussion and examples that make the language intelligible to those just learning to read and speak it. The material is designed to be accessible to students who do not have a strong background in discrete mathematics, but it is also appropriate for students who have had some exposure to discrete math but whose skills in this area need to be consolidated and sharpened. |

### What people are saying - Write a review

User Review - Flag as inappropriate

I really enjoy this text as a compliment to other suggested texts for the course. In my opinion, it is better than the Sipser text because there are more examples, it does not feel rushed an it feels explained and technically better. Very good to read after reading the Sipser text.

### Other editions - View all

### Common terms and phrases

A-transitions accepts the language algorithm alphabet basis step beginning bijection computation concatenation configuration consider construct contain the substring context-free grammar context-free language corresponding countable current string decision problem defined describe deterministic element encoding equivalence classes example Exercise finite automaton follows formula halts induction hypothesis induction step initial input string input symbol integer involving leftmost derivation loop mathematical induction natural numbers NFA-A nondeterminism nondeterministic notation obtained operation pair palindromes parentheses polynomial positive integer possible precisely prime primitive recursive primitive recursive functions productions proof of Theorem prove pumping lemma real numbers recognizing recursive definition recursively enumerable languages reduce regular expression regular languages represent result satisfying sequence of moves simple simulate specified square stack symbol statement string of length structural induction subset Suppose tape head tape symbol true Turing machine unsolvable variables