0% found this document useful (0 votes)
20 views15 pages

Example

The document contains examples of context-free grammars (CFGs) that generate various formal languages over the alphabet {a,b}. It discusses how parse trees can be used to represent words generated by a CFG and includes an example parse tree for the word "baab" generated by the CFG S → AA, A → AAA | bA | Ab | a.

Uploaded by

Ibrahim Qamar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views15 pages

Example

The document contains examples of context-free grammars (CFGs) that generate various formal languages over the alphabet {a,b}. It discusses how parse trees can be used to represent words generated by a CFG and includes an example parse tree for the word "baab" generated by the CFG S → AA, A → AAA | bA | Ab | a.

Uploaded by

Ibrahim Qamar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Example

 = {a,b}
productions:
1. S  SS
2. S  XS
3. S  
4. S  YSY
5. X  aa
6. X  bb
7. Y  ab
8. Y  ba
This grammar generates EVEN-EVEN language.
 = {a,b}
Example
productions:
1. S  aB
2. S  bA
3. A  a
4. A  aS
5. A  bAA
6. B  b
7. B  bS
8. B  aBB
This grammar generates the language EQUAL(The language of
strings, with number of a’s equal to number of b’s).
Note
It is to be noted that if the same non-terminal have
more than one productions, it can be written in
single line e.g.
S  aS, S  bS, S   can be written as
S  aS|bS|
It may also be noted that the productions S  SS|
 always defines the language which is closed w.r.t.
concatenation i.e.the language expressed by RE of
type r*. It may also be noted that the production S 
SS defines the language expressed by r +.
Example
Consider the following CFG  = {a,b}
productions:
1. S  YXY
2. Y  aY|bY|
3. X  bbb
It can be observed that, using prod.2, Y generates . Y
generates a. Y generates b. Y also generates all the
combinations of a and b. thus Y generates the strings
generated by (a+b)*. It may also be observed that the above
CFG generates the language expressed by (a+b)*bbb(a+b)*.
Following are four words generated by the given CFG
Example continued …
S  YXY S  YXY
 aYbbb  bYbbbaY
 abYbbb  bbbbabY
 abbbb  bbbbabbY
= abbbb  bbbbabbaY
 bbbbabba
S  YXY
= bbbbabba
 bbbaY
 bbbabY S  YXY
 bbbabaY  bYbbbaY
 bbbaba  bbbba
= bbbaba = bbbba
Example
Consider the following CFG
1. S  SS|XaXaX|
2. X  bX|
It can be observed that, using prod.2, X
generates . X generates any number of b’s.
Thus X generates the strings generated by b*.
It may also be observed that the above CFG
generates the language expressed by
(b*ab*ab*)*.
Example
Consider the following CFG
 = {a,b}
productions:
S  aSa|bSb|a|b|
The above CFG generates the language
PALINDROME. It may be noted that the
CFG
S  aSa|bSb|a|b generates the language NON-
NULLPALINDROME.
Example
Consider the following CFG
 = {a,b}
productions:
S  aSb|ab|
It can be observed that the CFG generates the
language {anbn: n=0,1,2,3, …}. It may also be
noted that the language {anbn: n=1,2,3, …} can
be generated by the following CFG S  aSb|ab
Task
Construct CFG that generates the language
L = {w  {a,b}*: length(w)  2 and second
letter of w from right is a}
Example
Consider the following CFG
(1) S  aXb|bXa (2) X  aX|bX|
The above CFG generates the language of
strings, defined over ={a,b}, beginning and
ending in different letters.
Task
Construct the CFG for the language of strings,
defined over ={a,b}, beginning and ending in
same letters.
Trees
As in English language any sentence can be expressed
by parse tree, so any word generated by the given CFG
can also be expressed by the parse tree, e.g.
consider the following CFG
S  AA
A  AAA|bA|Ab|a
Obviously, baab can be generated by the above CFG. To
express the word baab as a parse tree, start with S.
Replace S by the string AA, of nonterminals, drawing
the downward lines from S to each character of this
string as follows
Trees continued …
S

A A
Now let the left A be replaced by bA and
the right one by Ab then the tree will be
S

A A

b AA b
Trees continued …
Replacing both A’s by a, the above tree will
be
S

A A

b AA b

a a
Trees continued …
Thus the word baab is generated. The above
tree to generate the word baab is called
Syntax tree or Generation tree or
Derivation tree as well.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy