Download presentation

Presentation is loading. Please wait.

Published byMonserrat Cashmore Modified over 4 years ago

1
Lecture 11 Context-Free Grammar

2
Definition A context-free grammar (CFG) G is a quadruple (V, Σ, R, S) where V: a set of non-terminal symbols Σ: a set of terminals (V ∩ Σ = Ǿ) R: a set of rules (R: V → (V U Σ)*) S: a start symbol.

3
Example V = {q, f,} Σ = {0, 1} R = {q → 11q, q → 00f, f → 11f, f → ε } S = q (R= {q → 11q | 00f, f → 11f | ε })

4
How do we use rules? If A → B, then xAy xBy and we say that xAy derivates xBy. If s ··· t, then we write s * t. A string x in Σ* is generated by G=(V,Σ,R,S) if S * x. L(G) = { x in Σ* | S * x}.

5
Example G = ({S}, {0,1}. {S → 0S1 | ε }, S) ε in L(G) because S ε. 01 in L(G) because S 0S1 01. 0011 in L(G) because S 0S1 00S11 0011. 0 1 in L(G) because S * 0 1. L(G) = {0 1 | n > 0} nn nn nn

6
Context-Free Language (CFL) A language L is context-free if there exists a CFG G such that L = L(G).

7
Theorem For every regular set, there exists a CFG G such that L=L(G). Proof. Let L=L(M) for a DFA M=(Q, Σ, δ, s, F). Construct a CFG G=(V, Σ, R, S) as follows. V = Q, Σ = Σ, R = { q → ap | δ(q,a) = p } U { f → ε | f in F}, S = s. sq1q1 f=q n x1x1 xnxn S x 1 q 1 x 1 x 2 q 2 ··· x 1 …x n f x 1 …x n

8
x in L(M) There is a path associated with x from initial state to a final state. S * x Therefore, L(M) = L(G).

9
Corollary Every regular language is a CFL. The class of regular languages is a proper subclass of CFLs. CFL Regular Why, proper?

10
Regular Grammar Regular grammar is a CFG (V, Σ, R, S) such that every rule is in form V→ Σ*(V+ε) Example G = ({S, A}, {0, 1}, {S →1A, A → 00}, S) Remark: Every regular language can be generated by a regular grammar.

11
Theorem Every regular grammar generates a regular language. Proof. Consider a regular grammar G=(V, Σ, R, S). Construct a string-labeled digraph with vertex set V U {f} as follows: For each rule A → xB, x in Σ* and B in V, draw an edge A → B. x For each rule A → x, x in Σ*, draw an edge A → f x

12
Example G = ({S,A}, {0,1}, {S→0S | 10A, A→00}, S) S A f 0 10 00 This string-labeled digraph with initial state S and a final state f is a state diagram of an NFA M. S * x in Σ* There is a path associated with x from S to f in M. Therefore, L(G) = L(M).

13
Corollary A language L is regular if and only if L can be generated by a regular grammar.

14
Right-Linear and Left-Linear The regular grammar is also called a right- linear grammar. A grammar G=(V, Σ, R, S) is left-linear if every rule is in form V → (V+ε)Σ*. (e.g., ({S,A}, {0, 1}, {S→A01, A→10}, S) Remark: Every language generated from a left-linear grammar is regular. Why?

15
For left-linear grammar G = (V, Σ, R, S), construct G = (V, Σ, R, S) where R = {A→W | A→W in R}. G is right-linear. Hence, L(G ) is regular. Therefore, L(G) = L(G ) is regular. R RR R R R R R

16
Example 1 G = ({S,A}, {0, 1}, {S→A01, A→10}, S) G =({S,A}, {0, 1}, {S →10A, A →01}, S) NFA accepts L(G ) L(G )={1001} 1001 AS R R R

17
Example 2 L(G) = 0*1 L(G ) = 10* NFA accepts 10* G = ({S,A}, {0,1}, {S →1A, A →0A|ε}, S) G = ({S,A}, {0,1}, {S →A1, A →A0|ε}, S) 0 1 SA R R

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google