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 |
Chia sẻ: honghanh66 | Lượt xem: 1295 | 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