cs20a summary oct 17 2002
play

CS20a: summary (Oct 17, 2002) Context-free languages Grammars G = - PowerPoint PPT Presentation

CS20a: summary (Oct 17, 2002) Context-free languages Grammars G = (V, T, P, S) Grammar simplification Eliminate epsilon productions (A -> epsilon) Eliminate unit productions (A -> B) Eliminate useless symbols


  1. CS20a: summary (Oct 17, 2002) • Context-free languages – Grammars G = (V, T, P, S) – Grammar simplification • Eliminate epsilon productions (A -> epsilon) • Eliminate unit productions (A -> B) • Eliminate useless symbols – Normal forms • Chomsky • Griebach (not covered in lecture) • Next: pushdown automata – N-PDA = CFG – D-PDA < CFG Computation, Computers, and Programs CFG/PDA 1 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  2. Pushdown automata • A PDA has – An input tape – A finite control – A stack • First, we’ll consider nondeterministic PDAs • Actions: – Read: Examine input, move tape head right, and replace the top of the stack with a new symbol (nondeterministically--there may be many choices) – Think: manipulate stack without reading Computation, Computers, and Programs CFG/PDA 2 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  3. PDA machine Read-only tape 1. In state q a. read a symbol c, stack symbol Z b. move the tape head right 1 + 2 * 3 + 4 ; b. goto state delta(q, c, Z).1 d. replace Z with delta(q, c, Z).2 Tape head --or: a. goto state delta(q, ε , Z).1 2 Z Finite b. replace Z with delta(q, c, Z).2 + Control 2. Accept iff the FA is in a final 1 state after reading the last symbol Stack Computation, Computers, and Programs CFG/PDA 3 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  4. Acceptance conditions • Two traditional conditions – Process the input, and accept if the stack is empty – Process the input, and accept if the PDA is in a final state Computation, Computers, and Programs CFG/PDA 4 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  5. PDA: formal definition A (nondetermistic) PDA is a 7-tuple (Q, Σ , Γ , δ, q 0 , Z 0 , F) • Q is a set of states • Σ is an input alphabet • Γ is a stack alphabet • q 0 is the start state • Z 0 is a stack symbol called the start symbol • F ⊆ Q is a set of final states • δ : Q × ( Σ ∪ { ǫ } ) × Γ → 2 Q × Γ ∗ ) Computation, Computers, and Programs CFG/PDA 5 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  6. PDA execution: reading a symbol • Consider δ(q, a, Z) = { (p 1 , γ 1 ), . . . , (p m , γ n ) } • Then the PDA can: – enter some state p i – pop the stack (the symbol Z ) – push all elements γ i right-to-left (so the first symbol of γ i is at the top) – advance the tape head Computation, Computers, and Programs CFG/PDA 6 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  7. PDA execution: epsilon transition • Consider δ(q, ǫ, Z) = { (p 1 , γ 1 ), . . . , (p m , γ n ) } • Then the PDA can: – enter some state p i – pop the stack (the symbol Z ) – push all elements γ i right-to-left – does not advance the tape head Computation, Computers, and Programs CFG/PDA 7 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  8. Balanced parentheses M = ( { q 1 } , { ), ( } , { S, ( } , δ, S, {} ) δ(q 1 , (, S) = { (q 1 , () } δ(q 1 , (, () { (q 1 , () } = δ(q 1 , ), () { (q 1 , ǫ) } = δ(q 1 , ǫ, S) { (q 1 , ǫ) } = Computation, Computers, and Programs CFG/PDA 8 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  9. Accepting w$w R • (Machine given in class) Computation, Computers, and Programs CFG/PDA 9 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  10. Instantaneous descriptions An instantaneous description (ID) is a 3-tuple (q, w, γ) • q ∈ Q is a state • w ∈ Σ ∗ is the rest of the input • γ ∈ Γ ∗ is the contents of the stack, read top-to- bottom Computation, Computers, and Programs CFG/PDA 10 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  11. ID Read-only tape ID = (q, "*3+4;", "2+1") where q is the current machine state 1 + 2 * 3 + 4 ; Tape head 2 Z Finite + Control 1 Stack Computation, Computers, and Programs CFG/PDA 11 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  12. ID transitions • Let M = (Q, Σ , Γ , δ, q 0 , Z 0 , F) be a PDA • Let a ∈ Σ ∪ { ǫ } be an input symbol • Then, (q, aw, Zα) → M (p, w, βα) if δ(q, a, Z) con- tains (p, β) • Define → ∗ M as the transitive closure of → M (so it is reflexive, symmetric, and transitive) Computation, Computers, and Programs CFG/PDA 12 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  13. Executions • An execution σ = { σ 1 , . . . , σ n } is a string σ ∈ ID ∗ , where – σ i → M σ i + 1 Computation, Computers, and Programs CFG/PDA 13 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  14. Acceptance • A machine M = (Q, Σ , Γ , δ, q 0 , Z 0 , F) accepts string w if – (empty stack) there exists an execution (q 0 , w, Z 0 ) → M (q, ǫ, {} ) – (final state) there exists an execution (q 0 , w, Z 0 ) → M (q, ǫ, γ) and q ∈ F Computation, Computers, and Programs CFG/PDA 14 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  15. Deterministic PDAs • Let M = (Q, Σ , Γ , δ, q 0 , Z 0 , F) be a PDA • Then M is deterministic if: – Whenever δ(q, ǫ, Z) ≠ {} , then δ(q, a, Z) = {} for any a ∈ Σ – | δ(q, a, Z) | ≤ 1 for any a ∈ Σ • Note: ww R is accepted by a nondetermistic PDA, but not by any deterministic PDA Computation, Computers, and Programs CFG/PDA 15 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  16. Empty stack vs final state • Final state PDA -> empty stack PDA – Simulate: whenever the PDA reaches a final state, empty the stack • Empty stack PDA -> final state PDA – Add a special marker $ at the bottom of the stack – Add transitions delta(q, epsilon, S) � qf for some new state qf in F Computation, Computers, and Programs CFG/PDA 16 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  17. Compiling a CFG to a PDA Theorem If G = (V, T, P, S) , then there is a PDA M where L(G) = L(M) (empty stack) Computation, Computers, and Programs CFG/PDA 17 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  18. Greibach Normal Form (GNF) Greibach normal form every context-free language L without ǫ can be generated by a CFG wherr each pro- duction has the form A → aα where a is a terminal, and α is a sequence of symbols. Computation, Computers, and Programs CFG/PDA 18 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  19. GNF Construction: part 1 Proof • Let G = (V, T, P, S) be a CFG in Chomsky normal form where L = L(G) • This means all productions have the form A → a or A → BC • First, number the productions • Next, require that if A i → A j α is a production, then j > i Computation, Computers, and Programs CFG/PDA 19 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  20. Production ordering By (complete) induction on the productions • Consider production i • For j < , assume all productions have the form A j a or A j → A k α where k > j • If A i → A l α , and l < i then substitute A l for its right-hand-side • Repeat, until A i → A m α for m ≥ l Computation, Computers, and Programs CFG/PDA 20 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  21. GNF productions • For each A i → A j α , expand A j so that the produc- tion starts with a terminal • Each rhs for B i starts with a terminal or a A i • If A i , expand to get a terminal Computation, Computers, and Programs CFG/PDA 21 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  22. Building the PDA from the GNF To build the PDA for a grammar G = (V, T, P, S) in GNF • Each production has the form A → a 1 . . . a n X 1 . . . X m • Define M = ( { q } , T, V, δ, q, S, {} ) • Let δ(q, a, A) contains (q, γ) iff A → aγ ∈ P Computation, Computers, and Programs CFG/PDA 22 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  23. Constructed forms Now we have productions of the following forms: • A i → A j α for j > i • A i → aα for terminal a • B i → γ for γ ∈ (V ∪ { B 1 , . . . , B m } ) ∗ Computation, Computers, and Programs CFG/PDA 23 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  24. Self-productions • Next, suppose A i → A i α , • Let A i A i α 1 | · · · | A i α n be the productionw ith rhs starting with A i • Let A i → β 1 | · · · | β m be the remaining produc- tions • Add a new nonterminal B , and productions A i → β j A i → β j B B α i → B → α i B Computation, Computers, and Programs CFG/PDA 24 http://www.cs.caltech.edu/~cs20/a October 17, 2002

  25. Building a CFG from a PDA Theorem If M is a PDA, then there is a CFG G = (V, T, P, S) s.t. L(M) = L(G) • Let M = (Q, Σ , Γ , δ, q 0 , Z 0 , F) • Let V = { [q, A, p] | q, p ∈ Q ∧ A ∈ Γ } ∪ S • Productions – S → [q 0 , Z 0 , q] for each q ∈ Q – [q, A, q m + 1 ] → a[q 1 , B 1 , q 2 ] · · · [q m , B m , q m + 1 ] for each (q 1 , B 1 . . . B m ) ∈ δ(q, a, A) Computation, Computers, and Programs CFG/PDA 25 http://www.cs.caltech.edu/~cs20/a October 17, 2002

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend