Download presentation
Presentation is loading. Please wait.
Published byMonserrat Cashmore Modified over 10 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
© 2024 SlidePlayer.com. Inc.
All rights reserved.