Download presentation
Presentation is loading. Please wait.
Published byHarold Russell Modified over 9 years ago
1
Context-Free Grammars – Derivations Lecture 15 Section 2.1 Mon, Sep 24, 2007
2
Context-Free Grammars A context-free grammar is a grammar whose rules have the following properties: The left-hand is a single variable. The right-hand side is any string of variables and terminals.
3
Example Let V and be V = {E}, = {a, b, c, +, *, (, )}. Let R be E E + E | E * E | (E) | a | b | c
4
Examples Find CFGs for the following languages. {a n b n | n 0} {a n b m | n m 0} {a n b m | m n 0}
5
Equal No. of a’s and b’s Find CFGs for the language {w | w contains an equal number of a’s and b’s}
6
Equal No. of a’s and b’s Let w be a string with an equal number of a’s and b’s. There are four cases: w = aza w = azb w = bza w = bzb.
7
Equal No. of a’s and b’s In each case, what do we know about z?
8
Equal No. of a’s and b’s In the cases azb and bza, z is again a string with an equal number of a’s and b’s.
9
Equal No. of a’s and b’s In the cases aza and bzb, the string w must necessarily split into a concatenation of strings w 1 w 2, where w 1 and w 2 each have an equal number of a’s and b’s. Why?
10
Derivations A string u yields a string v if we can apply a grammar rule to u and get v. We write u v.
11
Derivations We say that u derives v if there is a sequence u 1, u 2, …, u k (k 0), where u = u 1, v = u k, and u 1 u 2 … u k. We write u * v. The sequence is called a derivation.
12
Leftmost and Rightmost Derivations A leftmost derivation is a derivation in which, at each step, the leftmost variable is replaced with a string. Similarly for a rightmost derivation.
13
Example Using the grammar S SS | aSb | bSa | find leftmost and rightmost derivations of abab.
14
Ambiguity Some grammars provide more than one way to derive a string. For example, abab can be derived in two different ways using the grammar rules S SS | aSb | bSa | (Typically the leftmost and rightmost derivations are different.)
15
Ambiguity If a language contains a string that has more than one leftmost derivation, then the grammar is ambiguous. If every grammar for a language is ambiguous, then the language is inherently ambiguous.
16
Ambiguity Consider again the grammar rules S SS | aSb | bSa | Suppose that, for every string, we need to associate with each a a unique b. Does the grammar show us how to do this?
17
Ambiguity Consider the grammar E E + E | E * E | (E) | a | b | c Derive the string a + b * c in two different ways. Is this grammar ambiguous? Is this language inherently ambiguous?
18
Ambiguity See Example 2.4 on p. 103 an unambiguous grammar for this language.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.