CFGs ¡and ¡CFLs ¡
Context-‑Free ¡Grammars ¡ • Programming ¡language ¡specifica6on ¡ • Parsing ¡ • Natural ¡language ¡understanding ¡ • Markup ¡languages ¡ • A ¡genera6ve ¡model ¡giving ¡structure ¡
Programming ¡Languages ¡
Natural ¡Language ¡Systems ¡
Natural ¡Language ¡Systems ¡ • h>p://www.bandnamemaker.com ¡ • h>p://www.outofservice.com/country/ ¡ • h>p://www.elsewhere.org/journal/pomo/ ¡ • h>p://pdos.csail.mit.edu/scigen/ ¡
Models ¡of ¡Growth ¡ • L-‑systems ¡ • h>p://www.kevs3d.co.uk/dev/lsystems/ ¡
Miscellaneous ¡
Kolam ¡drawing ¡generated ¡by ¡picture ¡ grammar ¡
CFG ¡definiBon ¡ A ¡CFG ¡is ¡a ¡quadruple ¡G ¡= ¡(V, ¡T, ¡P, ¡S) ¡ • V ¡a ¡set ¡of ¡ nonterminal ¡symbols ¡ • T ¡a ¡set ¡of ¡ terminal ¡symbols ¡ • P ¡is ¡a ¡set ¡of ¡ producBons , ¡each ¡of ¡the ¡form ¡ ¡ ¡A ¡ ¡ α ¡where ¡α ¡is ¡an ¡element ¡of ¡(V ¡U ¡T) * ¡ ¡ ¡ Meaning: ¡ ¡ ¡can ¡replace ¡A ¡with ¡α ¡ • S ¡ ¡in ¡V ¡is ¡a ¡ start ¡symbol ¡
Example: ¡ ¡G ¡= ¡(V, ¡T, ¡P, ¡S), ¡where... ¡ • V ¡= ¡{S} ¡ • T ¡= ¡{a,b} ¡ • P ¡= ¡{ ¡S ¡ ¡ ε ¡ ¡| ¡ ¡a ¡| ¡ ¡b ¡ ¡| ¡ ¡aSa ¡ ¡| ¡ ¡bSb ¡} ¡ ¡ ¡(abbrevia6on ¡for ¡S ε, ¡S a, ¡S b, ¡...) ¡ • S ¡= ¡start ¡symbol ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡S ¡ ¡ aSa ¡ ¡ abSba ¡ ¡ abbSbba ¡ ¡ abbbba ¡ ¡ ¡What ¡strings ¡can ¡S ¡generate ¡like ¡this? ¡
Palindromes ¡ • Adam ¡in ¡Eden ¡I’m ¡Adam ¡ • Dog ¡doo? ¡ ¡Good ¡God! ¡ • Dogma: ¡ ¡I ¡am ¡God. ¡ • A ¡man, ¡a ¡plan, ¡a ¡canal, ¡Panama ¡ • Are ¡we ¡not ¡drawn ¡onward, ¡we ¡few, ¡drawn ¡onward ¡ to ¡new ¡era? ¡ • Doc, ¡note: ¡ ¡I ¡dissent. ¡ ¡A ¡fast ¡never ¡prevents ¡a ¡ fatness. ¡ ¡I ¡diet ¡on ¡cod. ¡ • h>p://www.palindromelist.net ¡
NotaBon ¡& ¡ConvenBons ¡ Let ¡ G ¡= ¡(V, ¡T, ¡P, ¡S) , ¡then ¡ • a, ¡b, ¡c, ¡d, ¡... ¡ in ¡ T ¡ ¡ ¡ (terminals) ¡ • A, ¡B, ¡C, ¡D, ¡... ¡ in ¡ V ¡ ¡ (nonterminals) ¡ • u,v,w,x,y... ¡ in ¡ T * ¡ • α,β,γ,δ..[not ¡ε]... ¡in ¡( V ¡ ¡ U ¡ T ) * ¡ • X, ¡Y, ¡Z ¡in ¡ ¡ V ¡ ¡ U ¡ T ¡
“Derives” ¡relaBon ¡ Def: ¡ ¡α 1 ¡ G ¡ α 2 ¡ ¡iff ¡ ¡ ¡for ¡some ¡ A ¡in ¡ V ¡ ¡ for ¡some ¡β, ¡γ, ¡δ, ¡in ¡( V ¡U ¡ T ) * ¡ ¡ α 1 ¡= ¡β A δ ¡ ¡ ¡ ¡, ¡ ¡ ¡ α 2 ¡= ¡βγδ ¡ ¡ ¡ ¡ ¡ ¡, ¡ ¡and ¡ ¡ ¡A ¡ ¡ γ ¡is ¡in ¡ P ¡ ¡ “α 1 ¡ can ¡derive ¡α 2 ¡in ¡a ¡single ¡produc6on ¡applica6on” ¡ ¡ ¡ ⇒ More ¡commonly ¡wri>en ¡with ¡a ¡double-‑arrow ¡ ¡“ ¡ ¡ ¡ ¡ ¡ ¡ ¡” ¡ ¡ ¡ ¡ Also ¡called ¡“yields”: ¡ ¡“α 1 ¡ derives ¡α 2 ” ¡ ¡or ¡ ¡ ¡“α 1 ¡ yields ¡α 2 ” ¡ We ¡eliminate ¡the ¡subscript ¡ G ¡if ¡grammar ¡is ¡understood ¡from ¡context ¡ ¡ ¡ ¡ ¡ ¡
“Derives” ¡relaBon ¡(cont.) ¡ Def: ¡ ¡α 1 ¡ k ¡ α 2 ¡ ¡induc6vely ¡by: ¡ ¡ ¡ α 1 ¡ 0 ¡ α 2 ¡ ¡ if ¡α 1 ¡ = ¡ α 2 ¡ ¡ ¡ ¡ ¡ α 1 ¡ k ¡ α 2 ¡ ¡ if ¡ ¡ α 1 ¡ ¡ ¡ β ¡ k-‑1 ¡ α 2 ¡ Def: ¡Let ¡ * ¡be ¡the ¡reflexive ¡& ¡transi6ve ¡closure ¡of ¡ the ¡rela6on ¡ ¡ ¡ In ¡other ¡words, ¡α 1 ¡ * ¡ α 2 ¡ ¡ ¡iff ¡for ¡some ¡ k , ¡α 1 ¡ k ¡ α 2 ¡ ¡
DefiniBon ¡of ¡L(G) ¡and ¡CFLs ¡ • If ¡ G ¡= ¡(V,T,P,S) ¡is ¡a ¡CFG, ¡then ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ L(G) ¡= ¡ { w ¡in ¡T * ¡| ¡S ¡ * ¡ w } ¡ • In ¡other ¡words, ¡ L(G), ¡ contains ¡exactly ¡the ¡ strings ¡of ¡terminals ¡that ¡ S ¡can ¡derive. ¡ ¡ • L(G) ¡is ¡the ¡ language ¡generated ¡by ¡G. ¡ ¡ CFLs ¡ ¡= ¡{ L ¡ | ¡ L ¡= ¡L(G) ¡ for ¡some ¡CFG ¡ G } ¡
2 ¡– ¡minute ¡challenge ¡ Create ¡a ¡grammar ¡that ¡generates ¡{0 n 1 n |n ¡≥ ¡0} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ S ¡ ¡ 0 S 1 ¡ | ¡ε ¡ 5 ¡– ¡minute ¡challenge ¡ Create ¡a ¡grammar ¡that ¡generates ¡{0 n 1 m |n≠m} ¡
More ¡definiBons.... ¡ • A ¡ sentenBal ¡form ¡ is ¡any ¡string ¡ ¡α ¡such ¡that ¡ S ¡ * ¡ α ¡ ¡ • A ¡ derivaBon ¡ of ¡ w ¡is ¡a ¡sequence ¡of ¡senten6al ¡ forms ¡ S ¡= ¡α 1 ¡ ¡ α 2 ¡ ¡ ... ¡ ¡ α n ¡= ¡w ¡ S ¡ ¡aSb ¡ | ¡bSa ¡ | ¡SS ¡ | ¡ab | ¡ba ¡ | ¡ε ¡ A ¡ deriva6on ¡of ¡ abbaab ¡: ¡ ¡ S ¡ ¡ aSb ¡ ¡ abSab ¡ ¡ abSSab ¡ ¡ abbaSab ¡ ¡ abbaab ¡
DerivaBon ¡Trees ¡ • Rooted ¡trees. ¡ ¡ ¡ S ¡at ¡the ¡root. ¡ • Nonterminals ¡at ¡the ¡interior ¡nodes ¡ • Terminals ¡at ¡the ¡leaves ¡ • Shows ¡what ¡was ¡replaced ¡with ¡what: ¡ – Each ¡nonterminal ¡has ¡children ¡which ¡are ¡the ¡ symbols ¡on ¡the ¡right ¡side ¡of ¡some ¡produc6on ¡ – A ¡picture ¡is ¡worth ¡a ¡thousand ¡words... ¡ ¡ ¡ ¡ ¡ ¡ ¡
S ¡ A ¡deriva6on ¡tree ¡for ¡ abbaab ¡ ¡ ¡ ¡ ¡ (also ¡called ¡“parse ¡tree”) ¡ a ¡ S ¡ b ¡ b ¡ S ¡ a ¡ S ¡ ¡aSb ¡ | ¡bSa ¡ | ¡SS ¡ | ¡ab | ¡ba ¡ | ¡ε ¡ S ¡ S ¡ A ¡ corresponding ¡deriva6on ¡of ¡ abbaab ¡ b ¡ a ¡ ε ¡ S ¡ ¡ aSb ¡ ¡ abSab ¡ ¡ abSSab ¡ ¡ abbaSab ¡ ¡ abbaab ¡
Example: ¡Regular ¡Expressions ¡ S ¡ ¡ Ø| ¡ε| ¡ a ¡ | ¡ b ¡ | ¡( S + S ) ¡| ¡( SS ) ¡| ¡( S *) ¡ S ¡ ( ¡ S ¡ * ¡ ) ¡ Traverse ¡leaves ¡from ¡ler ¡to ¡right ¡ (( a +( ab ))*) ¡ ( ¡ + ¡ ) ¡ S ¡ S ¡ ( a + ab )* ¡ S ¡ ( ¡ S ¡ ) ¡ a ¡ a ¡ b ¡
Example: ¡ProposiBonal ¡Formulae ¡ S ¡ ¡ p ¡ | ¡ q ¡ | ¡(~ S ) ¡| ¡( S ¡ ^ ¡ S ) ¡| ¡( S ¡ v ¡ S ) ¡| ¡ε ¡ S ¡ ( ¡ ~ ¡ S ¡ ) ¡ ( ¡ ^ ¡ ) ¡ S ¡ S ¡ (~( p ^( q ¡ v ¡ p ))) ¡ ( ¡ v ¡ ) ¡ S ¡ S ¡ p ¡ p ¡ q ¡
Ambiguity ¡ • Consider ¡grammar: ¡ ¡ ¡ S ¡ ¡ ¡ S-‑S ¡ | ¡ 1 ¡| ¡ 2 ¡| ¡ 3 ¡ • Two ¡different ¡parse ¡trees ¡for ¡“3-‑2-‑1”: ¡ S ¡ S ¡ – ¡ S ¡ S ¡ – ¡ S ¡ S ¡ – ¡ S ¡ S ¡ S ¡ – ¡ S ¡ 3 ¡ 1 ¡ 3 ¡ 2 ¡ 1 ¡ 2 ¡ 3–(2–1) ¡ ¡ (3–2)–1 ¡ ¡
Ambiguity ¡ • Original ¡grammar: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ S ¡ ¡ ¡ S-‑S ¡ | ¡ 1 ¡| ¡ 2 ¡| ¡ 3 ¡ • Unambiguous ¡grammar: ¡ ¡ ¡ ¡ ¡ S ¡ ¡ ¡ S-‑ C ¡| ¡1 ¡| ¡2 ¡| ¡3 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ C ¡ ¡ 1 ¡| ¡ 2 ¡| ¡ 3 ¡ S ¡ – ¡ S ¡ C ¡ The ¡grammar ¡forces ¡a ¡parse ¡ corresponding ¡to ¡ ¡ler-‑to-‑right ¡ S ¡ – ¡ C ¡ 1 ¡ evalua6on. ¡ 3 ¡ 2 ¡ (3–2)–1 ¡ ¡
Ambiguity: ¡another ¡example ¡ • Consider ¡grammar: ¡ ¡ ¡ S ¡ ¡ ¡ S ¡ + ¡ S ¡ | ¡S ¡ x ¡ S ¡| ¡a ¡ • Two ¡different ¡parse ¡trees ¡for ¡“ a ¡ x ¡ a ¡ + ¡ a”: ¡ S ¡ S ¡ x ¡ S ¡ S ¡ S ¡ S ¡ + ¡ S ¡ S ¡ + ¡ S ¡ S ¡ a ¡ x ¡ a ¡ a ¡ a ¡ a ¡ a ¡ a ¡ x ¡ ( a ¡+ ¡ a ) ¡ ¡ ( a ¡ x ¡ a ) ¡+ ¡ a ¡
Ambiguity ¡ • Original ¡grammar: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ S ¡ ¡ ¡ S ¡ + ¡ S ¡ | ¡S ¡ x ¡ S ¡ | ¡ a ¡ • Unambiguous ¡grammar: ¡ ¡ ¡ ¡ ¡ S ¡ ¡ ¡ a ¡+ ¡ S ¡| ¡ a ¡ x ¡ S | ¡ a ¡ S ¡ To ¡derive: ¡ ¡ a ¡ x ¡ a ¡+ ¡ a ¡ x ¡ a ¡ S ¡ The ¡grammar ¡forces ¡a ¡parse ¡ corresponding ¡to ¡ ¡right-‑to-‑ler ¡evalua6on. ¡ ¡ ¡ ¡ a ¡ S ¡ + ¡ (Not ¡necessarily ¡what ¡we ¡always ¡want. ¡) ¡ a ¡ a ¡ x ¡ a ¡ + ¡ a ¡ ¡ ¡ ¡ ¡parses ¡as ¡ ¡ ¡ ¡a ¡ x ¡ ( a ¡+ ¡ a ) ¡ ¡
Recommend
More recommend