here

advertisement
Task Lists for Regular Languages Unit
1.0 Tasks
Ability to determine if a string x is in the language described by a regular expression r.
Ability to draw the computation of a Finite Automaton M on an input string x.
Ability to draw the computation of an NFA M on an input string x.
Ability to draw the computation of an NFA-/\ M on an input string x.
1.5 Tasks
Ability to “program” with finite automata and regular expressions for simple languages L
- given a target language L, write an FA M such that L(M) = L
- given a target language L, write a regular expression r such that L(r) = L
Ability to “debug” with finite automata and regular expressions for simple languages L
- given an FA M, give a natural English language description of L(M)
- given a regular expression r, give a natural English language description of L(r)
2.0 Tasks
Ability to execute the basic algorithms that we have encountered in this unit
- take finite automaton M and construct new finite automaton M' which accepts L(M)'
- take 2 finite automata M1 and M2 and construct a new finite automata M3 such that
L(M3) = L(M1) op L(M2) where op is union, intersection, set difference
- convert an NFA into an FA
- convert an NFA-/\ into an NFA
- convert a reg. exp r into an NFA-/\
- ability to parse a regular expression by identifying “last” operator
- ability to combine 2 arbitrary NFA-/\’s to make a new one which recognizes
union, concatenation, or Kleene closure
2.5 Tasks
Ability to read and understand “parameterized” descriptions of languages
- understanding role of variables and parameters and their “binding” or “scope”
{an bn | n > 0}: numbers of a’s and b’s are equal because n is identical
{an | n > 0} concatenate {bn | n>0} produces {anbm | n,m > 0}, not {an bn | n > 0}
Distinguishability idea of strings
- understanding of what it means for two strings to be distinguishable/indistinguishable with
respect to a given language L or automaton M
- extension of above idea into understanding how languages and automata partition
Sigma* into a finite number of equivalence classes
- ability to extend above ideas and apply Myhill-Nerode Theorem to prove that a given language
is not regular
Proof Techniques
- understanding of generic element proof technique and how it is used in this course
- ability to recognize when proof by counterexample is sufficient
Complete mastery of above tasks should give a student a 75 (a 2.5) on the exam.
3.0-4.0 Tasks
Higher level understanding of principles behind the above algorithms
- NFA to FA conversion
- what is the idea behind the transformation
- why can it always be done
- what do the new states in the FA represent
- NFA-/\ to NFA conversion
- what is the idea behind the transformation
- when does the initial state need to be made accepting in the new NFA
- reg exp to NFA-/\ conversion
- idea of a recursive algorithm: recursive case and base cases
- understanding of why the various operators are handled the way they are
- LFA closed under union, intersection, set difference proofs
- the idea that we are running both FA's in parallel
- understanding the idea the idea of how we handle what the new accepting
states should be
- LFA closed under set complement
- the idea of doing the same thing and just switching yes and no
- understanding why this construction does NOT work for NFAs
Understanding of nondeterminism and determinism in computational models
- deterministic computational model: next action is always well defined
- computation produces a path because there is always only one next action
- nondeterministic computational model: next action is not always uniquely defined,
- computation produces a tree because there can be more than one next action
- ability to recognize nondeterminism
- any real/implemented model is deterministic
Understanding of Myhill-Nerode Theorem
- what exactly is the Myhill-Nerode Theorem saying
- connections to ideas of distinguishability and partitioning of Sigma*
- what Myhill-Nerode Theorem is NOT saying (regular languages are finite languages)
- An understanding of what languages are regular and what languages are not regular
Proof Techniques
- ability to perform a new generic element proof technique not seen before
- ability to prove/disprove new closure property type statements
- counterexamples
- set property proofs
- constructive proofs
Ability to learn a new algorithm on your own
- FA minimization algorithm
Ability to see how Kleene's Theorem applies to real life
- string searching
- lexical analysis
Download