Regular Expressions
We try to express a language using a base case, and an inductive case. There are four kinds of inductive rules:
$E_1 + E_2$ | Union | $L(E_1+E_2) = {E_1, E_2}$ |
---|---|---|
$E_1 E_2$ | Concatenation | $L(E_1E_2) = {E_1E_2}$ |
$E_1^*$ | Repetition (?) | $L(E_1^*) = {\epsilon, E_1, E_1E_1, \ldots}$ |
Note that Finite State Automata and Regular Expressions are equivalent to each other, as discussed in the previous lecture.
Note that $(ab+ba)^* = { \epsilon, ab, ba, abba, baab, \ldots}$
HW1. Language using a,b as alphabets; accepts all words with even number of a’s
The FSA for this language is easy enough. The regular expression equivalent would be given by: \(L = (b^*ab^*ab^*)^*\)
HW2. Same alphabets as before; but even number of a’s AND odd number of b’s
Push Down Automata
We want the FSM to have access to another data structure for more expressive power (a stack). The bottom of the stack is denoted by $Z_o$ with the stack symbols being pushed on top of it. Do note that the input signals need not be the same as the stack symbols.
This lets the PDA to:
- Move to a new state
- Pop/Push from a stack
The transitions are labeled as $(a,X\vert aX)$. Meaning that the transition corresponds to alphabet $a$ and we are pushing it onto the stack. Similarly $(b,aX\vert X)$ meaning $a$ is popped from the stack.
A word is accepted on an EMPTY STACK; rejected when no transition or stack not empty
HW3. \(L = \{ \text{Number of a's < 2}\times\text{number of b's} \}\) Write the above language using CFG.
doubt1 - $a\vert Wa$ meaning?
doubt2 - How is an empty string rejected?
Non-Determinism
Consider a language on $a,b$ which contains all palindromes. For example, $abbbba$ is a word in the language. This can be represented by a Non-Deterministic Automata, where we need to guess where we stop pushing and start popping.
A word in non-deterministic FSA is accepted if any single sequence of choices leads to a final state.