CS 311 FINAL EXAM TOPICS The final exam will be comprehensive over the entire course. Thus, this list includes all the topics listed for the midterm. The horizontal lines separate pre- and post- midterm topics. DEFINITIONS Formal Language Deterministic Finite Automaton (DFA) Acceptance and recognition by a DFA Regular Language Nondeterministic Finite Automaton (NFA) Acceptance and recognition by a NFA Regular Expressions -- Syntax and Meaning Context-free Grammar (CFG) Derivation in a CFG Context-free Language Ambiguity in CFGs Ambiguity in Languages Pushdown Automaton (PDA) Acceptance and Recognition by a PDA --------------------------------- Chomsky Normal Form (CNF) Turing Machine (TM) Recognition and Decision by a TM Computability of a function by a TM Multitape TM Nondeterministic TM (NTDM) Church-Turing Thesis Lambda-calculus PDA with k stacks (k-PDA) k-Counter machines Universal Turing Machine (U) Reduction Time Complexity class (TIME) Space Complexity class (SPACE) Class P Class NP Poynomial-time reduction NP-Complete THEOREMS (You should be able to state and apply these theorems, and, except as noted, outline their proofs.) Equivalence of DFAs and NFAs. Equivalence of DFAs and Regular Expressions. Closure of Regular Languages under union, concatenation, Kleene-*, intersection, complement. Pumping Lemma for Regular Languages. Closure of CFLs under union, concatenation, Kleene-* Equivalence of CFGs and PDAs ---------------------------------------------- Pumping Lemma for CFLs Equivalence of ordinary TM, semi-infinite tape TM, multitape TM, NDTM, 2-PDA, and 2-counter machine. Existence of a Turing-undecidable language. Existence of a Turing-unrecognizable language. Equivalence of lambda-calculus and TM. (no proof). Equivalence of unrestricted grammar and TM (no proof). Equivalence of partial recursive functions and lambda-caculus (no proof). SAT is NP-complete (no proof) TASKS Design a simple DFA, NFA, regular expression, CFG, or PDA from an informal language description. Give an informal language description for a simple DFA, NFA, regular expression, CFG, or PDA. Apply simple equivalence laws for rewriting regular expressions. Apply the union, concatenation, or Kleene-* construction on NFAs Apply the product and complement constructions to DFAs. Perform the subset construction for converting an NFA to a DFA, including computing epsilon-closures. Construct an NFA from a regular expression. Construct a regular expression from a DFA (either method) Prove a language to be non-regular by applying the pumping lemma and/or the closure laws. Apply the union, concatenation, or Kleene-* operators on CFGs. Give a paper simulation of the behavior of a DFA, NFA, or PDA on a specified input. --------------------------------------------------------- Calculate the CNF of a CFG. Prove a language to be non-context-free by applying the pumping lemma and/or the closure laws. Give a paper simulation of the behavior of a TM on a specified input. Design a simple TM to recognize or decide an informal language description. Prove undecidability of a language using reduction. Manipulate big-O notation. I will *not* ask you to show that a language is NP-complete. EXAMPLES You should be familiar with standard examples and non-examples of regular, context-free, Turing-acceptable, Turing-decidable, Turing-undecidable, non-Turing-acceptable, P, NP, and NP-complete languages. You should know the basic inclusion relationships among the classes: regular languages, context-free languages, P, NP, Turing-decidable languages, Turing-recognizable languages.