Indexed Languages (And Why You Care)

Indexed Languages (And Why You Care)

Indexed Languages and why you care Presented by Pieter Hooimeijer 2008-02-07 1 Think Way Back... 2 www.xkcd.com ...Far Enough: ... CS NCF DCF REG REG 3 Formal Language Classes ... CS NCF DCF REG REG PDA 4 Formal Language Classes ... CS NCF DCF REG REG PDA DFA 5 Formal Language Classes ... CS NCF DCF REG REG Machines PDA DFA Formalism S → aSb | z a(ab)*b 6 Formal Language Classes ... CS NCF DCF REG REG Pump Pump 7 The Context-Free Pumping Lemma Suppose L = { anbncn | n = 1...} is context- free. By the pumping lemma, any string s with |s| ≥ p can be 'pumped.' p 8 The Context-Free Pumping Lemma What does 'can be pumped' mean? s = uvxyz 1)|vy| > 0 2)|vxy| ≤ p i i 3) uv xy z is in L for all i ≥ 0 9 The Context-Free Pumping Lemma Suppose L = { anbncn | n = 1...} is context-free. Consider s = apbpcp; for any split s = uvxyz, we have: - if v contains a's, then y cannot contain c's - if y contains c's, then v cannot contain a's 0 0 - a problem: uv xy z = uxz will never be in L 10 Moving Right Along 11 Motivation – Some Examples • Can solve problems by phrasing them as 'language' problems: • Finding valid control flow graph paths • Solving set constraint problems • Static string analysis • Lexing, parsing • For fun... 12 Example – String Variables www.xkcd.com 13 The Nugget Some Code: x = 'z'; • We want a context free grammar to model x while(n < 5) { x = '(' . x . ')'; n ++; • Suppose we don't know } anything about n 14 The Nugget Some Code: Grammar: >x = 'z'; A -> z while(n < 5) { x = '(' . x . ')'; n ++; } 15 The Nugget Some Code: Grammar: x = 'z'; A -> z [True] while(n < 5) { B -> (A) [n < 5] > x = '(' . x . ')'; n ++; } 16 The Nugget Some Code: Grammar: x = 'z'; A -> z [True] while(n < 5) { B -> (A) [n < 5] x = '(' . x . ')'; C -> A | B [n < 5] n ++; >>} 17 The Nugget Some Code: Grammar: x = 'z'; A -> z [True] B -> (C) [n < 5] while(n < 5) { C -> A | B [True] x = '(' . x . ')'; n ++; >>} 18 The Nugget Some Code: Grammar: x = 'z'; X -> C while(n < 5) { A -> z [True] x = '(' . x . ')'; B -> (C) [n < 5] n ++; C -> A | B [True] >>} 19 Indexed Languages ... CS *I* NCF DCF REG REG 20 Definition: Indexed Grammar • G = (N, T, F, P, S) P : { N → ((NF*) ∪ T)* } F : { { N → (N ∪ T)*}f } 21 Derivation Rule Example S 1 S → Sf S → ABgC Sf Sff Aff Bgff Cff 22 Derivation Rule Example S 1 S → Sf S → ABgC Sf Sff 'normal' production: copy index stack Aff Bgff Cff 23 Derivation Rule Example S 2 S → Af F = { { A → B}f } Af B● 24 Derivation Rule Example S 2 S → Af F = { { A → B}f } Af B 25 Derivation Rule Example S 2 S → Af F = { { A → B}f } Af B 'index' production: pop leftmost index (for current nonterminal only) 26 An Example Grammar S → Df g = {A → Aa f = {A → a D → Dg | ABC B → Bb B → b C → Cc} C → c} 27 An Example Grammar S → Df g = {A → Aa f = {A → a D → Dg | ABC B → Bb B → b C → Cc} C → c} What is the language of this grammar? 28 An Example Grammar S → Df S D → Dg | ABC g = {A → Aa B → Bb C → Cc} f = {A → a B → b C → c} 29 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa B → Bb C → Cc} f = {A → a B → b C → c} 30 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} f = {A → a B → b C → c} 31 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf f = {A → a B → b C → c} 32 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf f = {A → a B → b C → c} 33 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf f = {A → a Afa B → b C → c} 34 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf f = {A → a Afa a B → b C → c} aa 35 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf Afa f = {A → a Bfb a B → b b C → c} aa bb 36 An Example Grammar S → Df S D → Dg | ABC Df g = {A → Aa Dgf B → Bb C → Cc} Agf Bgf Cgf Afa Cfc f = {A → a Bfb a c B → b b C → c} aa bb cc 37 Where am I? { anbncn | n = 1...} ... CS *I* NCF DCF REG REG 38 ... CS *I* NCF DCF REG REG Machines PDA DFA Formalisms S → aSb | z a(ab)*b Pumps 39 ... CS *I* NCF DCF REG REG NSA PDA DFA S → aSfb | z S → aSb | z a(ab)*b ? 40 Associated Automaton 41 Associated Automaton 42 (Actual NSA) [Gilman, Shapiro 1998] 43 But will it pump? • It's complicated – on derivation trees rather than strings [Hayashi 1973] • Several corollaries exist [Gilman 1996] (less general; easier to use) 44 The Lemma L : indexed language m : positive integer There is a constant k > 0 so that each w in L can be split (w = w1w2...wr) subject to: The Lemma L : indexed language m : positive integer There is a constant k > 0 so that each w in L can be split (w = w1w2...wr) subject to: • m < r ≤ k • each |wi| > 0 The Lemma L : indexed language m : positive integer There is a constant k > 0 so that each w in L can be split (w = w1w2...wr) subject to: • m < r ≤ k • each |wi| > 0 • any m-sized set of wi's is a subset of some w' in L; w' is a subproduct of w Lemma Example Lemma Example (Montage Time) 50 { (abn)n | n = 1...} { anbncn | n = 1...} ... CS *I* NCF DCF REG REG NSA PDA DFA S → aSfb | z S → aSb | z a(ab)*b ? 51 52 References • Indexed Grammars – An Extension to Context-Free Grammars (Aho) • Nested Stack Automata (Aho) • Sequentially Indexed Grammars (van Eijck) • A Shrinking Lemma for Indexed Languages (Gilman) • On Groups Whose Word Problem is Solved by a Nested Stack Automaton (Gilman and Shapiro) • On Derivation Trees of Indexed Grammars (Hayashi) 53.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    53 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us