Not in edition 2
The main difference between editions 2 and 3 is the addition
of this section. Because this section is most useful for compiler
parsing, we will pass this task on to CSCI 431.
What is a determinate pushdown automata?
There is either none or one choice for the next state.
Modify the non-determinate PDA definition:
δ: transition function
Q × Σε × Γε → ℘(Q × Γε)
For determinate PDA Definition 2.39:
δ: transition function
δ(Q × Σε × Γε) → (Q × Γε) ∪ {∅}
and
For every q ∈ Q, a ∈ Σ and x ∈ Γ
exactly one of the following is not ∅
δ(q, a, x)
δ(q, a, ε)
δ(q, ε, x)
δ(q, ε, ε)
determinate vs. non-determinate context free languages?
{aibjck | i≠j or j≠k}
is a context free language but is not a determinate context
free language!
Grammars for compiling
- Expect great detail in the CSCI 434 textbook.
- LR is left-to-right, rightmost derivation.
- LR(k) needs a lookahead of k.
- Compiler writers prefer LR(1)
- LR has a large Wipedia article.