Study Guide for the Final Exam

advertisement
CmSc 365 Theory of Computation
Study Guide for the Final Exam
1. Alphabets and languages: Formal definition of a language.
2. Regular expressions and regular languages:
a. Formal definition of regular expressions.
b. Given a list of regular expressions and a list of regular languages, be able
to match each expression to the corresponding language
c. Given a list of regular expressions and a list of strings, be able to match
each expression to the corresponding string
3. Formal definition of deterministic FSAs
4. Given a regular language, be able to construct a deterministic FSA that accepts
the language.
5. Formal definition of non-deterministic FSAs
6. Given a regular expression, be able to construct a non-deterministic FSA that
accepts the language described by the regular expression, applying the
construction rules in Theorem 2.3.1
7. Know the complexity of algorithms for deterministic FSAs and for nondeterministic FSAs.
8. Formal definition of a Context Free Grammar
9. Problems on CFG: given a grammar and a string, be able to write the derivation of
that string under the grammar.
10. Formal definition of a PDA.
11. Interpretation of an element of the transition relation, i.e. given
((p, a, β),(q, γ)), state the meaning of p, a, β, q, γ , and describe the action of the
PDA.
12. Formal definition of a configuration and computation of a PDA. What does it
mean for a string to be accepted by a PDA?
13. Know what type of languages are accepted by PDAs.
14. Problems: Given a CFG, be able to construct the PDA that accepts the language
generated by the grammar.
1
15. Problems: Given a PDA and a string be able to show the computations that
accepts the string.
16. Be able to formulate the closure properties of context free languages.
17. Know what polynomial algorithms exist for context-free languages.
18. Be able to answer the following questions: Is there one-to-one correspondence
between a context-free languages and CFGs? Is there an algorithm to decide if
two CFGs are equivalent (accept/generate same language)? Is there an algorithm
to minimize the states of a PDA?
19. Informal and formal definition of a Turing machine
20. Be able to trace the computation of a given Turing machine on a given input
21. Know what it means for a Turing machine to decide a language
22. Know what it means for a Turing machine to semi-decide a language
23. Know the definition of recursive and recursively enumerable languages
24. Know the relation between recursive and recursively enumerable languages. This
means to be able to answer the following questions: Are there recursive languages
that are not recursively enumerable? Are there recursively enumerable languages
that are not recursive?
25. Be able to explain how we know that there are languages that cannot be decided
or semi-decided by a Turing machine.
2
Download