CMPS 260 Spring 2019
Preview of Final Exam
Generally speaking, you should expect the final exam to include
problems similar to those that appeared in the homework assignments
and the midterm exam.
More specifically, you should be prepared to solve problems of the
following types:
- Given a binary relation on a set S, identify which properties
it possesses among reflexivity, symmetry, and transitivity.
- Given a set S and a list of properties (such as those mentioned
in the previous item), devise a binary relation on S (illustrated
by a directed graph whose vertices correspond to members of S)
that possesses those properties.
- Given a relatively simple assertion regarding numbers, sets,
relations, graphs, context-free grammars, or finite automata,
demonstrate its truth using one or more proof techniques among
mathematical induction, proof by contradiction, and the
pigeonhole principle.
- Given an informal, but precise, description of a context-free
language (CFL), devise a context-free grammar (CFG) that
generates that language.
- Given a CFG G, provide an informal, but precise description of
the language that it generates (L(G)).
- Given an informal, but precise, description of a regular language,
devise either a finite automaton (possibly restricted to being
deterministic) that accepts the language or a regular expression
that denotes the language.
- Given a finite automaton (possibly nondeterministic), provide an
informal, but precise description of the language that it accepts.
- Given a finite automaton M, devise a regular expression r such that
they represent the same language (i.e., L(M) = L(r)).
Or vice versa. (You will not be asked to carry out the
nfa-to-rex algorithm in Section 3.2, however.)
- Given a nondeterministic finite automaton (NFA), convert it to an
equivalent deterministic finite automaton (DFA) using the
"subset construction" algorithm (what Linz refers to as the
nfa-to-dfa procedure in Section 2.3).
- Given the description of some language operator (e.g., as in
Problems 16-18 at end of Section 2.3 or Problems 3-6 in HW #5),
justify the claim that regular languages are closed under that
operator. (Typically this is done by showing that an FA that
accepts L can be (algorithmically) modified to become an FA
that accepts op(L).)
- Given a DFA M, identify the equivalence classes of the
state-indistinguishability relation and, based upon those,
construct an equivalent minimal DFA M'.
- Given an NFA M, construct a right-linear grammar G such that
L(M) = L(G). Or vice versa.
- Given a non-regular language, prove it to be so using results
in Linz, the Regular Language Pumping Lemma, and/or closure
properties of regular languages.
- Given a CFG G, identify and remove its useless symbols to arrive
at an equivalent CFG G'.
- Given a CFG G, devise an equivalent CFG having no λ-productions
or unit productions (ones of the form A → B).
- Given a CFG, tell whether or not it is ambiguous.
- Given a CFG G, convert it to an equivalent CFG in Chomsky Normal
Form (CNF).
- Given a CNF CFG G and a (short) string x, apply the CYK algorithm
(Section 6.3) to determine whether x ∈ L(G).
- Given an informal, but precise, description of a CFL L, devise a
NPDA M such that L(M) = L.
- Given the description of a (simple) recursively enumerable (RE)
language, devise a Turing machine (TM) that accepts it.
- Given the description of a (simple) computable function,
language, devise a Turing machine (TM) that computes it.
- Given the description of a set that is not countable, employ
Cantor's Diagonalization method to demonstrate that the set
is not countable.
- Given the description of a set that is countable, but perhaps
not obviously so, describe a procedure by which to enumerate
its elements, thereby proving that it is countable.