Chomsky Hierarchy
The languages in increasing order of generality are:
- Regular Languages - Finite State Automata
- Context Free Grammar - Push Down Automata
- Unrestricted Grammar - Turing Machine
Finite State Automaton Problems
Q1. Is a bitstring’s decimal representation divisible by 7?
A. Make an FSM tracking the remainder, start at 0.
HW1. What if the bitstring is fed in reverse?
HW2. Instead of a base2 input, what is the FSA if the input is decimal (base10)?
Context Free Grammar
FSA cannot be drawn for CFG. Example: $a^nb^n$ cannot be obtained using a finite state automaton.
It can be written in grammar notation however, as follows:
\[\begin{align} S &\rightarrow \epsilon \\ S &\rightarrow aSb \\ \end{align}\]Another example of a language which cannot be represented by FSA is the “matching parentheses” problem. Both these can be represented using a PDA/grammar notation.
We would like un-ambiguous grammar, meaning that no two rules are the “same”. The following grammar is not ambiguous, the proof will be discussed later.
\[\begin{align} S &\rightarrow \epsilon \\ S &\rightarrow (S) \\ S &\rightarrow SS \\ \end{align}\]The grammar in CFG has 4 components:
\[G = (V, \Sigma, R, S)\]V - Non-terminal variables (S in previous case) $\Sigma$ - alphabet R - Rules ($S \rightarrow SS$) S - Start symbol what dis
Unrestricted Grammar
CFG Grammar’s restrictions on R can be lifted to obtain unrestricted grammar.
\[UG = (V, \Sigma, P, S)\]P - The rules are of form $\alpha \rightarrow \beta$ where $\alpha\beta\in (V \cup \Sigma)^*$
Turing Machine and Unrestricted Grammar are equivalent. They can compute any mathematical function.
HW3. $L = { a^{n^2} \vert n\geq 0 }$