Tài liệu Bài giảng Theory Of Automata - Lecture 32: Recap lecture 31
Context Free Grammar, Terminals, non-
terminals, productions, CFG, context Free 
language, examples.
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.
Example
 = {a,b}
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 C...
                
              
                                            
                                
            
 
            
                 16 trang
16 trang | 
Chia sẻ: honghanh66 | Lượt xem: 1480 | Lượt tải: 0 
              
            Bạn đang xem nội dung tài liệu Bài giảng Theory Of Automata - Lecture 32, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Recap lecture 31
Context Free Grammar, Terminals, non-
terminals, productions, CFG, context Free 
language, examples.
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.
Example
 = {a,b}
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
 aYbbb
 abYbbb
 abbbb
= abbbb
S YXY
 bbbaY
 bbbabY
 bbbabaY
 bbbaba
= bbbaba
S YXY
 bYbbbaY
 bbbbabY
 bbbbabbY
 bbbbabbaY
 bbbbabba
= bbbbabba
S YXY
 bYbbbaY
 bbbba
= 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 
Now let the left A be replaced by bA and 
the right one by Ab then the tree will be
S
A A
S
A A
b A A b
Trees continued 
Replacing both A’s by a, the above tree will 
be
S
A A
b A A 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.
            Các file đính kèm theo tài liệu này:
 theory_of_automata_cs402_power_point_slides_lecture_32_5618.pdf theory_of_automata_cs402_power_point_slides_lecture_32_5618.pdf