# Properties of ContextFree Languages Decision Properties Closure Properties

- Slides: 30

Properties of Context-Free Languages Decision Properties Closure Properties 1

Summary of Decision Properties u As usual, when we talk about “a CFL” we really mean “a representation for the CFL, e. g. , a CFG or a PDA accepting by final state or empty stack. u There algorithms to decide if: 1. String w is in CFL L. 2. CFL L is empty. 3. CFL L is infinite. 2

Non-Decision Properties u. Many questions that can be decided for regular sets cannot be decided for CFL’s. u. Example: Are two CFL’s the same? u. Example: Are two CFL’s disjoint? w How would you do that for regular languages? u. Need theory of Turing machines and decidability to prove no algorithm exists. 3

Testing Emptiness u. We already did this. u. We learned to eliminate variables that generate no terminal string. u. If the start symbol is one of these, then the CFL is empty; otherwise not. 4

Testing Membership u. Want to know if string w is in L(G). u. Assume G is in CNF. w Or convert the given grammar to CNF. w w = ε is a special case, solved by testing if the start symbol is nullable. u. Algorithm (CYK ) is a good example of dynamic programming and runs in time O(n 3), where n = |w|. 5

CYK Algorithm u. Let w = a 1…an. u. We construct an n-by-n triangular array of sets of variables. u. Xij = {variables A | A =>* ai…aj}. u. Induction on j–i+1. w The length of the derived string. u. Finally, ask if S is in X 1 n. 6

CYK Algorithm – (2) u. Basis: Xii = {A | A -> ai is a production}. u. Induction: Xij = {A | there is a production A -> BC and an integer k, with i < k < j, such that B is in Xik and C is in Xk+1, j. 7

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X 12={B, S} X 23={A} X 34={B, S} X 45={A} X 11={A, C} a X 22={B, C} b X 33={A, C} a X 44={B, C} b X 55={A, C} a 8

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X 13={} Yields nothing X 12={B, S} X 23={A} X 34={B, S} X 45={A} X 11={A, C} X 22={B, C} X 33={A, C} X 44={B, C} X 55={A, C} 9

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X 13={A} X 24={B, S} X 35={A} X 12={B, S} X 23={A} X 34={B, S} X 45={A} X 11={A, C} X 22={B, C} X 33={A, C} X 44={B, C} X 55={A, C} 10

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X 14={B, S} X 13={A} X 24={B, S} X 35={A} X 12={B, S} X 23={A} X 34={B, S} X 45={A} X 11={A, C} X 22={B, C} X 33={A, C} X 44={B, C} X 55={A, C} 11

Example: CYK Algorithm Grammar: S -> AB, A -> BC | a, B -> AC | b, C -> a | b String w = ababa X 15={A} X 14={B, S} X 25={A} X 13={A} X 24={B, S} X 35={A} X 12={B, S} X 23={A} X 34={B, S} X 45={A} X 11={A, C} X 22={B, C} X 33={A, C} X 44={B, C} X 55={A, C} 12

Testing Infiniteness u. The idea is essentially the same as for regular languages. u. Use the pumping lemma constant n. u. If there is a string in the language of length between n and 2 n-1, then the language is infinite; otherwise not. u. Let’s work this out in class. 13

Closure Properties of CFL’s u. CFL’s are closed under union, concatenation, and Kleene closure. u. Also, under reversal, homomorphisms and inverse homomorphisms. u. But not under intersection or difference. 14

Closure of CFL’s Under Union u. Let L and M be CFL’s with grammars G and H, respectively. u. Assume G and H have no variables in common. w Names of variables do not affect the language. u. Let S 1 and S 2 be the start symbols of G and H. 15

Closure Under Union – (2) u. Form a new grammar for L M by combining all the symbols and productions of G and H. u. Then, add a new start symbol S. u. Add productions S -> S 1 | S 2. 16

Closure Under Union – (3) u. In the new grammar, all derivations start with S. u. The first step replaces S by either S 1 or S 2. u. In the first case, the result must be a string in L(G) = L, and in the second case a string in L(H) = M. 17

Closure of CFL’s Under Concatenation u. Let L and M be CFL’s with grammars G and H, respectively. u. Assume G and H have no variables in common. u. Let S 1 and S 2 be the start symbols of G and H. 18

Closure Under Concatenation – (2) u. Form a new grammar for LM by starting with all symbols and productions of G and H. u. Add a new start symbol S. u. Add production S -> S 1 S 2. u. Every derivation from S results in a string in L followed by one in M. 19

Closure Under Star u. Let L have grammar G, with start symbol S 1. u. Form a new grammar for L* by introducing to G a new start symbol S and the productions S -> S 1 S | ε. u. A rightmost derivation from S generates a sequence of zero or more S 1’s, each of which generates some string in L. 20

Closure of CFL’s Under Reversal u. If L is a CFL with grammar G, form a grammar for LR by reversing the right side of every production. u. Example: Let G have S -> 0 S 1 | 01. u. The reversal of L(G) has grammar S -> 1 S 0 | 10. 21

Closure of CFL’s Under Homomorphism u. Let L be a CFL with grammar G. u. Let h be a homomorphism on the terminal symbols of G. u. Construct a grammar for h(L) by replacing each terminal symbol a by h(a). 22

Example: Closure Under Homomorphism u. G has productions S -> 0 S 1 | 01. uh is defined by h(0) = ab, h(1) = ε. uh(L(G)) has the grammar with productions S -> ab. S | ab. 23

Closure of CFL’s Under Inverse Homomorphism u. Here, grammars don’t help us. u. But a PDA construction serves nicely. u. Intuition: Let L = L(P) for some PDA P. u. Construct PDA P’ to accept h-1(L). u. Will be covered in next Discussion section --- BE THERE! 24

Nonclosure Under Intersection u. Unlike the regular languages, the class of CFL’s is not closed under . u. We know that L 1 = {0 n 1 n 2 n | n > 1} is not a CFL (use the pumping lemma). u. However, L 2 = {0 n 1 n 2 i | n > 1, i > 1} is. w CFG: S -> AB, A -> 0 A 1 | 01, B -> 2 B | 2. u. So is L 3 = {0 i 1 n 2 n | n > 1, i > 1}. u. But L 1 = L 2 L 3. 30

Nonclosure Under Difference u. We can prove something more general: w Any class of languages that is closed under difference is closed under intersection. u. Proof: L M = L – (L – M). u. Thus, if CFL’s were closed under difference, they would be closed under intersection, but they are not. 31

Intersection with a Regular Language u. Intersection of two CFL’s need not be context free. u. But the intersection of a CFL with a regular language is always a CFL. u. Proof involves running a DFA in parallel with a PDA, and noting that the combination is a PDA. w PDA’s accept by final state. 32

DFA and PDA in Parallel DFA Input PDA S t a c k Accept if both accept Looks like the state of one PDA 33

Formal Construction u. Let the DFA A have transition function δA. u. Let the PDA P have transition function δP. u. States of combined PDA are [q, p], where q is a state of A and p a state of P. uδ([q, p], a, X) contains ([δA(q, a), r], ) if δP(p, a, X) contains (r, ). w Note a could be , in which case δA(q, a) = q. 34

Formal Construction – (2) u. Accepting states of combined PDA are those [q, p] such that q is an accepting state of A and p is an accepting state of P. u. Easy induction: ([q 0, p 0], w, Z 0)⊦* ([q, p], , ) if and only if δA(q 0, w) = q and in P: (p 0, w, Z 0)⊦*(p, , ). 35

- Closure properties of context free languages
- Decision properties of context free languages
- Regular languages closure properties
- Right linear grammar
- No decision snap decision responsible decision
- Investment decision financing decision dividend decision
- Decision properties of cfl
- Decision properties of context free languages
- Decision properties of regular languages
- Decision properties of regular languages
- Decision properties of regular language
- Decision properties of regular languages
- Unit 5 polynomial functions
- The closure property of context free grammar includes
- Np closure properties
- Closure properties of dfa
- Decision tree and decision table examples
- Properties of regular languages
- Uses of attribute closure algorithm
- Perclose closure device
- Convolution is associative
- Kleene plus
- Water hammer calculation
- Chapter 8 closure
- Finite automata
- Project closure adalah
- Distributive property in division
- Project closure (penutupan proyek)
- Transitive closure in daa
- Perpetual project closure
- Timing closure in vlsi