Top Banner
Theory of Computation Lecture 4: Context Free Grammar (CFG) Cairo University FCI Dr. Hussien Sharaf Computer Science Department [email protected]
23
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lec4

Theory of Computation

Lecture 4: Context Free Grammar (CFG)

Cairo UniversityFCI

Dr. Hussien SharafComputer Science [email protected]

Page 2: Lec4

2

p.434: Regular Languages and non-regular languages

Dr. Hussien M. Sharaf

Language Defined by

Corresponding Accepting Machine

Nondeter-minism=Determinism

Regular expression Finite automaton, transition graph

Yes

Context-free grammar

Pushdown automaton No

Type 0 grammar Turing machine, Post machine, Pushdown automaton

Yes

Page 3: Lec4

3

CFG A context-free grammar is a notation for

defining context free languages.It is more powerful than finite automata or

RE’s, but still cannot define all possible languages.

Useful for nested structures, e.g., parentheses in programming languages.

Basic idea is to use “variables” to stand for sets of strings.

These variables are defined recursively, in terms of one another.

Dr. Hussien M. Sharaf

Page 4: Lec4

4

CFG formal definitionC =(V, Σ, R, S)V: is a finite set of variables.Σ: symbols called terminals of the alphabet of

the language being defined.S V: a special start symbol.R: is a finite set of production rules of the

form A→ where A V, (V Σ)

Dr. Hussien M. Sharaf

Page 5: Lec4

5

CFG -1Define the language { anbn | n > 1}.Terminals = {a, b}.Variables = {S}.Start symbol = S.Productions ={

S → ab,S → aSb }Summary

S → abS → aSb

Dr. Hussien M. Sharaf

Page 6: Lec4

6

DerivationWe derive strings in the language of a CFG by

starting with the start symbol, and repeatedly replacing some variable A by the right side of one of its productions.

Derivation example for “aabb”Using S→ aSb

generates uncompleted string that still has a non- terminal S.

Then using S→ ab to replace the inner SGenerates “aabb”

S aSb aabb ……[Successful derivation of aabb]

Dr. Hussien M. Sharaf

Page 7: Lec4

7

Balanced-parenthesesProd1 S → (S)Prod2 S → ()

Derive the string ((())).S → (S) …..[by prod1]

→ ((S)) …..[by prod1]→ ((())) …..[by prod2]

Dr. Hussien M. Sharaf

Page 8: Lec4

8

PalindromeDescribe palindrome of a’s and b’s using CGF1] S → aS 2] S → bS3] S → b 4] S → a

Derive “baab” from the above grammar.S → bS [by 2]

→ baS [by 1]→ baaS [by 1]→ baab [by 3]

Dr. Hussien M. Sharaf

Page 9: Lec4

CFG – 2.1Describe anything (a+b)* using CGF1] S → Λ 2] S → Y 3] Y→ aY4] Y → bY 5] Y →a 6] Y→ b

Derive “aab” from the above grammar.S → aY [by 3]

Y → aaY [by 3]Y → aab [by 6]

Dr. Hussien M. Sharaf 9

Page 10: Lec4

CFG – 2.21] S → Λ 2] S → Y 3] Y→ aY4] Y → bY 5] Y →a 6] Y→ b

Derive “aa” from the above grammar.S → aY [by 3]

Y → aa [by 5]

Dr. Hussien M. Sharaf 10

Page 11: Lec4

11

Remember CFG is about categorizing the grammar of a

language

Dr. Hussien M. Sharaf

Page 12: Lec4

12

CFG – 3Describe anything (a+b)* using CGF1] S →aS 2] S → bS 3] S →ΛDerive “aab” from the above grammar.S → aS [by 1]

S → aaS [by 1]S → aabS [by 2]S → aabΛ [by 3] → aab

Dr. Hussien M. Sharaf

Page 13: Lec4

13

CFG – 4Describe anything (a+b)*aa(a+b)* using CGF1] S →XaaX 2] X → aX 3] X → bX 4] X →ΛNote: rules 2, 3, 4 represents anything (a+b)*Derive “baabaab” from the above grammar.S → XaaX [by 1] X→ bXaaX [by 3]X→ bΛaaX [by 4] X → baabX [by 3]X → baabaX [by 2] X→ baabaaX [by 2]X→ baabaabX [by 3] X→ baabaabΛ[by 4]

Dr. Hussien M. Sharaf

Anything aa Anything

Page 14: Lec4

14

CFG – 5Describe a language that has even number of a’s

and even number of b’s using CGF.i.e. aababbab

1] S →SS 2] S →BALANCED S3] S →S BALANCED 4] S →Λ5] S →UNBALANCED S UNBALANCED6] BALANCED → aa 7] BALANCED → bb8] UNBALANCED → ab9] UNBALANCED → ba

Dr. Hussien M. Sharaf

Even-Even grammar

Page 15: Lec4

15

CFG – 5Derive “aababbab” from the above grammar.S → BALANCED S [by 1]BALANCED→ aa UNBALANCED S UNBALANCED

[by 5]UNBALANCED → aa ba S UNBALANCED [by 9]UNBALANCED → aa ba S ab [by 8]S → aa ba BALANCED S ab [by 3]UNBALANCED → aa ba bb S ab [by 7]S → aa ba bb ab [by 4]

→ aababbab

Dr. Hussien M. Sharaf

Even-Even grammar

Page 16: Lec4

16

CFG – 6i.e. {Λ, ab, aaabbb,… }S → aSb|Λ Derive “aaaabbbb”S →aSb→aSb→aaSbb →aaaSbbb

→aaaaSbbbb →aaaabbbb

Dr. Hussien M. Sharaf

Balanced a-b grammar

Page 17: Lec4

17

CFG – 7i.e. {Λ, ab, abbaabba,… }S → aSa| bSb| Λ Derive “abbaabba” “abba abba”S →aSa→abSba→abbSbba →abbaSabba→ abba abba→ abbaabba

Dr. Hussien M. Sharaf

Even-Plaindrome grammar

Page 18: Lec4

18

CFG – 8i.e. {Λ, abb, ababa,… }S → aSa| bSb| a| b| Λ Derive “ababa” “ab a ba”S →aSa→abSba→abSba →abSba→ ababa

Note: anban can be represented by S → aSa| bBut anban bn+1 can not be represented by CFG !

Dr. Hussien M. Sharaf

Plaindrome grammar

Page 19: Lec4

i.e. {Λ, ab, abbaabba,… }S → aSa| bSb| Λ Derive abaaba

19

Even-Plaindrome grammar

S

S

Λ

aa

S bb

S aa

Dr. Hussien M. Sharaf

CFG – 9

Page 20: Lec4

Deduce CFG of addition and parse the following expression 2+3+5

1] S→S+S|N2] N→1|2|3|4|5|6|7|8|9|0 N1|N2|N3|N4|N5|N6|N7|N8|N9|N0

20

S

S+N

S+

N

5S

+

3

N

2

N

Can u makeanother parsingtree ?

Dr. Hussien M. Sharaf

CFG – 10

Page 21: Lec4

CFG – 11.1Deduce CFG of a addition/multiplication and

parse the following expression 2+3*5

1] S→S+S|S*S|N

2] N→1|2|3|4|5|6|7|8|9|0 N1|N2|N3|N4|N5|N6|N7|N8|N9|N0

21

S

S*S

S*

N

5S+

3

N

2

N

Can u makeanother parsingtree ?

Dr. Hussien M. Sharaf

Page 22: Lec4

CFG -11.2 without ambiguityDeduce CFG of a addition/multiplication and

parse the following expression 2*3+51] S→ Term|Term + S 2] Term → N|N * Term 3] N→1|2|3|4|5|6|7|8|9|0

N1|N2|N3|N4|N5|N6|N7|N8|N9|N0

22

S

S+N

S+

N

5S

*

3

N

2

N

Can u makeanother parsingtree ?

Dr. Hussien M. Sharaf

Page 23: Lec4

23

Thank you

Dr. Hussien M. Sharaf