1 / 17

DR. Torng

DR. Torng. Closure Properties for CFL’s Kleene Closure Union Concatenation CFL’s versus regular languages regular languages subset of CFL. Closure Properties for CFL’s. Kleene Closure. CFL closed under Kleene Closure. Let L be an arbitrary CFL Let G 1 be a CFG s.t. L(G 1 ) = L

uriah
Download Presentation

DR. Torng

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DR. Torng • Closure Properties for CFL’s • Kleene Closure • Union • Concatenation • CFL’s versus regular languages • regular languages subset of CFL

  2. Closure Properties for CFL’s Kleene Closure

  3. CFL closed under Kleene Closure • Let L be an arbitrary CFL • Let G1 be a CFG s.t. L(G1) = L • G1 exists by definition of L1 in CFL • Construct CFG G2 from CFG G1 • Argue L(G2) = L* • There exists CFG G2 s.t. L(G2) = L* • L* is a CFL

  4. L L* G1 G2 CFG’s Visualization • Let L be an arbitrary CFL • Let G1 be a CFG s.t. L(G1) = L • G1 exists by definition of L1 in CFL • Construct CFG G2 from CFG G1 • Argue L(G2) = L* • There exists CFG G2 s.t. L(G2) = L* • L* is a CFL CFL

  5. A Algorithm Specification • Input • CFG G1 • Output • CFG G2 such that L(G2) = CFG G1 CFG G2

  6. Construction • Input • CFG G1 = (V1, S, S1, P1) • Output • CFG G2 = (V2, S, S2, P2) • V2 = V1 union {T} • T is a new symbol not in V1 or S • S2 = T • P2 = P1 union ??

  7. Closure Properties for CFL’s Kleene Closure Examples

  8. Input grammar: V = {S} S = {a,b} S = S P: S → aa | ab | ba | bb Output grammar V = S = {a,b} Start symbol is P: Example 1 V2 = V1 union {T} T is a new symbol not in V1 or SS2 = TP2 = P1 union {T → ST | l}

  9. Input grammar: V = {S, T} S = {a,b} Start symbol is T P: T → ST | l S → aa | ab | ba | bb Output grammar V = S = {a,b} Start symbol is P: Example 2 V2 = V1 union {T} T is a new symbol not in V1 or SS2 = TP2 = P1 union {T → ST | l}

  10. Construction for Set Union • Input • CFG G1 = (V1, S, S1, P1) • CFG G2 = (V2, S, S2, P2) • Output • CFG G3 = (V3, S, S3, P3) • V3 = V1 union V2 union {T} • Variable renaming to insure no names shared between V1 and V2 • T is a new symbol not in V1 or V2 or S • S3 = T • P3 =

  11. Construction for Set Concatenation • Input • CFG G1 = (V1, S, S1, P1) • CFG G2 = (V2, S, S2, P2) • Output • CFG G3 = (V3, S, S3, P3) • V3 = V1 union V2 union {T} • Variable renaming to insure no names shared between V1 and V2 • T is a new symbol not in V1 or V2 or S • S3 = T • P3 =

  12. CFL’s and regular languages

  13. CFL Closure Properties • What have we just proven • CFL’s are closed under Kleene closure • CFL’s are closed under set union • CFL’s are closed under set concatenation • What can we conclude from these 3 results? • It follows that regular languages are a subset of CFL’s

  14. Regular languages subset of CFL • Similar to reg-exp to NFA-λ construction from module 22 • Base Case: • {}, {l}, {a}, {b} are regular languages over {a,b} • P={}, P={S → l}, P={S → a}, P={S → b} • Inductive Case: • If L1 and L2 are are regular languages, then L1*, L1L2, L1 union L2 are regular languages • Use previous constructions to see that these resulting languages are also context-free

  15. Other CFL Closure Properties • We will show that CFL’s are NOT closed under many other set operations • Examples include • set complement • set intersection • set difference

  16. H Equal ? CFL REC RE All languages over alphabet S H Language class hierarchy REG

  17. Nested language examples • Prove the following languages are CFLs • {anbncmdm | m,n ≥ 0} • {anbmcmdn | m,n ≥ 0} • {am+nbmcn | m,n ≥ 0} • What happens if we change bounds above to 1 instead of 0?

More Related