PDA
We want to find other representation of a context free language in order to solve the membership problem efficiently.
The problem is that with context free languages if they are complex, the tools become less and less efficient, some languages aren’t even feasible to manipulate.
Pushdown automaton: finite state automaton with stack memory structure:
{Q, Σ, Γ, 𝛿, q0, Z0, F}
A language is accepted by a final state by the PDA.
A language is accepted by empty stack.
NFA
Equations tricks

Context-free languages venn diagram

LL(1) grammars
A grammar is said to be LL(1) if its predictive parsing table has no multily-defined entries:
No ambiguos or left-recursive grammar can be LL(1).
LL(1) parser:
The class of languages that can be parsed with LL(1) parsers a proper subset off the deterministic CFL’s.
SA: left recursive grammars
Replacing left-recursive productions:
A → A 𝛂 | β ===
SLR
SLR parsing tables for the same languages are much smaller respect to LR(1) parsing tables (several hundred states) but can contain conflicts.

LR
LALR(1) parsing
Core:
Union:
Conflicts:

Predictive parsing
