CSCI 22000. THEORY OF COMPUTATION The theory of abstract machines and formal languages is introduced in this course. Computability by finite automata, pushdown automata, and Turing machines is examined and related to pattern matching, lexical analysis, compilation and programming for digital computer systems. Proofs by induction, construction, contradiction, and reduction are used to formalize computability theory and the limitations of computing.