Costas Busch - LSU 1
Context-Free Languages
Costas Busch - LSU 2
Regular Languages
}0:{ nba nn }{ R
ww
**ba *)( ba 
Context-Free Languages
Costas Busch - LSU 3
Context-Free Languages
Pushdown
Automata
Context-Free
Grammars
stack
automaton
Costas Busch - LSU 4
Context-Free Grammars
Costas Busch - LSU 5
Grammars
Grammars express languages
Example: the English language grammar
verbpredicate
nounarticlephrasenoun
predicatephrasenounsentence



_
_
Costas Busch - LSU 6
sleepsverb
runsverb
dognoun
catnoun
thearticle
aarticle






Costas Busch - LSU 7
Derivation of string “the dog sleeps”:
sleepsdogthe
verbdogthe
verbnounthe
verbnounarticle
verbphrasenoun
predicatephrasenounsentence






_
_
Costas Busch - LSU 8
Derivation of string “a cat runs”:
runscata
verbcata
verbnouna
verbnounarticle
verbphrasenoun
predicatephrasenounsentence






_
_
Costas Busch - LSU 9
Language of the grammar:
L = { “a cat runs”,
“a cat sleeps”,
“the cat runs”,
“the cat sleeps”,
“a dog runs”,
“a dog sleeps”,
“the dog runs”,
“the dog sleeps” }
Costas Busch - LSU 10
catnoun 
Variables
Sequence of
Terminals (symbols)
Productions
predicatephrasenounsentence _
Sequence of Variables
Costas Busch - LSU 11
Another Example


S
aSbSGrammar:
Variable
Sequence of
terminals and variables
The right side
may be 
Costas Busch - LSU 12
Grammar:
Derivation of string :


S
aSbS
abaSbS 
ab
aSbS  S
Costas Busch - LSU 13
Grammar:
Derivation of string :
aabbaaSbbaSbS 
aSbS  S
aabb


S
aSbS
Costas Busch - LSU 14
aaabbbaaaSbbbaaSbbaSbS 
aaaabbbbaaaaSbbbb
aaaSbbbaaSbbaSbS


Other derivations:


S
aSbSGrammar:
Costas Busch - LSU 15


S
aSbS
}0:{  nbaL nn
Grammar:
Language of the grammar

Costas Busch - LSU 16
We write:
Instead of:
aaabbbS
*

aaabbbaaaSbbbaaSbbaSbS 
for zero or more derivation steps
A Convenient Notation
Costas Busch - LSU 17
nww
*
1 
nwwww  321
in zero or more derivation steps
In general we write:
If:
ww
*
Trivially:
Costas Busch - LSU 18


S
aSbS
aaabbbS
abS
S
*
*
*



Example Grammar Possible Derivations
baaaaaSbbbbaaSbbS


Costas Busch - LSU 19


S
aSbS
|aSbS 
thearticle
aarticle


theaarticle |
Another convenient notation:
Costas Busch - LSU 20
Formal Definitions
 PSTVG ,,,
Set of
variables
Set of
terminal
symbols
Start
variable
Set of
productions
Grammar:
Costas Busch - LSU 21
Context-Free Grammar:
All productions in are of the form
sA 
String of
variables and
terminals
),,,( PSTVG 
P
Variable
Costas Busch - LSU 22
|aSbS 
 PSTVG ,,,
}{SV 
},{ baT 
},{  SaSbSP
variables
terminals
productions
start variable
Example of Context-Free Grammar
Costas Busch - LSU 23
For a grammar with start variableG S
String of terminals or
*},:{)(
*
TwwSwGL 

Language of a Grammar:
Costas Busch - LSU 24
context-free grammar :
}0:{)(  nbaGL nn
nn
baS


G
Example:
Since, there is derivation
for any 0n
|aSbS 
Costas Busch - LSU 25
A language is context-free
if there is a context-free grammar
with
L
G
)(GLL 
Context-Free Language definition:
Costas Busch - LSU 26
since context-free grammar :
}0:{  nbaL nn
G
Example:
is a context-free language
generates LGL )(
|aSbS 
Costas Busch - LSU 27
||bSbaSaS 
abbaabSbaaSaS 
Context-free grammar :G
Example derivations:
abaabaabaSabaabSbaaSaS 
)(GL }*},{:{ bawwwR

Palindromes of even length
Another Example
Costas Busch - LSU 28
|| SSaSbS 
ababSaSbSSSS 
Context-free grammar :G
Example derivations:
abababaSbabSaSbSSSS 
}prefixanyin
)()(and
),()(:{
v
vnvn
wnwnw
ba
ba

)(GL
() ((( ))) (( ))
Describes
matched
parentheses: )b(, a
Another Example
Costas Busch - LSU 29
Derivation Order
and
Derivation Trees
Costas Busch - LSU 30
Derivation Order
Consider the following example grammar
with 5 productions:
ABS .1


A
aaAA
.3
.2


B
BbB
.5
.4
Costas Busch - LSU 31
aabaaBbaaBaaABABS
54321

Leftmost derivation order of string aab :
At each step, we substitute the
leftmost variable
ABS .1


A
aaAA
.3
.2


B
BbB
.5
.4
Derivation of aab
Costas Busch - LSU 32
aabaaAbAbABbABS
32541

Rightmost derivation order of string aab:
At each step, we substitute the
rightmost variable
ABS .1


A
aaAA
.3
.2


B
BbB
.5
.4
Derivation of aab
Costas Busch - LSU 33
aabaaAbAbABbABS
32541

Rightmost derivation of :aab
aabaaBbaaBaaABABS
54321

Leftmost derivation of :aab
ABS .1


A
aaAA
.3
.2


B
BbB
.5
.4
Costas Busch - LSU 34
Derivation Trees
Consider the same example grammar:
aabaaBbaaABbaaABABS 
And a derivation of :aab
ABS  |aaAA  |BbB 
Costas Busch - LSU 35
ABS 
S
BA
ABS  |aaAA  |BbB 
yield AB
Costas Busch - LSU 36
aaABABS 
a a A
S
BA
ABS  |aaAA  |BbB 
yield aaAB
Costas Busch - LSU 37
aaABbaaABABS 
S
BA
a a A B b
ABS  |aaAA  |BbB 
yield aaABb
Costas Busch - LSU 38
aaBbaaABbaaABABS 
S
BA
a a A B b

ABS  |aaAA  |BbB 
yield
aaBbBbaa 
Costas Busch - LSU 39
aabaaBbaaABbaaABABS 
yield
aabbaa 
S
BA
a a A B b
 
Derivation Tree
ABS  |aaAA  |BbB 
(parse tree)
Costas Busch - LSU 40
aabaaBbaaBaaABABS 
aabaaAbAbABbABS 
TRY IT OUT!
Sometimes, derivation order doesn’t matter
Leftmost derivation:
Rightmost derivation:
Costas Busch - LSU 41
aabaaBbaaBaaABABS 
aabaaAbAbABbABS 
S
BA
a a A B b
 
Give same
derivation tree
Sometimes, derivation order doesn’t matter
Leftmost derivation:
Rightmost derivation:
Costas Busch - LSU 42
Ambiguity
Costas Busch - LSU 43
Grammar for mathematical expressions
))(()( aaaaaaa 
Example strings:
Denotes any number
aEEEEEE |)(|| 
Costas Busch - LSU 44
A leftmost derivation
for aaa 
aaaEaa
EEaEaEEE
*

aEEEEEE |)(|| 
PARSE TREE ???
Costas Busch - LSU 45
A leftmost derivation
for aaa 
E
EE
EE

a
a a

aaaEaa
EEaEaEEE
*

aEEEEEE |)(|| 
Costas Busch - LSU 46
aaaEaa
EEaEEEEEE


Another
leftmost derivation
for
aEEEEEE |)(|| 
aaa 
PARSE TREE ???
Costas Busch - LSU 47
E
EE

a a

EE a
aaaEaa
EEaEEEEEE


Another
leftmost derivation
for
aEEEEEE |)(|| 
aaa 
Costas Busch - LSU 48
aaa  E
EE

a a

EE a
E
EE
EE

a
a a

Two derivation trees
for
aEEEEEE |)(|| 
Costas Busch - LSU 49
E
EE


EE
E
EE
EE

2
2 2 2 2
2
222  aaa
take 2a
Costas Busch - LSU 50
E
EE


EE
E
EE
EE


6222 
2
2 2 2 2
2
8222 
4
2 2
2
6
2 2
24
8
Good Tree Bad Tree
Compute expression result
using the tree
Costas Busch - LSU 51
Two different derivation trees
may cause problems in applications which
use the derivation trees:
• Evaluating expressions
• In general, in compilers
for programming languages
Costas Busch - LSU 52
Ambiguous Grammar:
A context-free grammar is ambiguous
if there is a string which has:
two different derivation trees
or
two leftmost derivations
G
)(GLw
(Two different derivation trees give two
different leftmost derivations and vice-versa)
Costas Busch - LSU 53
E
EE

a a

EE a
E
EE
EE

a
a a

string aaa  has two derivation trees
aEEEEEE |)(|| 
this grammar is ambiguous since
Example:
Costas Busch - LSU 54
string aaa  has two leftmost derivations
aaaEaa
EEaEEEEEE


aaaEaa
EEaEaEEE
*

aEEEEEE |)(|| 
this grammar is ambiguous also because
Costas Busch - LSU 55
IF_STMT if EXPR then STMT
| if EXPR then STMT else STMT
Another ambiguous grammar:
Variables Terminals
Very common piece of grammar
in programming languages
Costas Busch - LSU 56
If expr1 then if expr2 then stmt1 else stmt2
TWO
Parse Trees
or
Derivation Trees
???
Costas Busch - LSU 57
If expr1 then if expr2 then stmt1 else stmt2
IF_STMT
expr1 then
elseif expr2 then
STMT
stmt1
if
IF_STMT
expr1 then else
if expr2 then
STMT stmt2if
stmt1
stmt2
Two derivation trees
Costas Busch - LSU 58
In general, ambiguity is bad
and we want to remove it
Sometimes it is possible to find
a non-ambiguous grammar for a language
But, in general ιt is difficult to achieve this
Costas Busch - LSU 59
aE
EE
EEE
EEE




)(
aEF
FFTT
TTEE
|)(
|
|



Ambiguous
Grammar
Non-Ambiguous
Grammar
Equivalent
generates the same
language
A successful example:
Costas Busch - LSU 60
aaaFaaFFa
FTaTaTFTTTEE


E
E T
T  F
F
a
T
F
a
a
aEF
FFTT
TTEE
|)(
|
|



Unique
derivation tree
for aaa 
Costas Busch - LSU 61
}{}{ mmnmnn
cbacbaL 
0, mn
An un-successful example:
every grammar that generates this
language is ambiguous
L is inherently ambiguous:
Costas Busch - LSU 62
}{}{ mmnmnn
cbacbaL 
|
|11
aAbA
AcSS


|
|22
bBcB
BaSS

21 | SSS 
Example (ambiguous) grammar for :L
Costas Busch - LSU 63
The string Lcba nnn

has always two different derivation trees
(for any grammar)
S
1S
S
2S
1S c 2Sa
For example

More Related Content

PPTX
Properties of Regular Expressions
PPTX
Turing machines
PDF
Lecture: Automata
PPTX
Context free grammar
PPTX
NFA Non Deterministic Finite Automata by Mudasir khushik
PDF
Regular language and Regular expression
PPTX
Regular expressions
PPT
Theory of Automata
Properties of Regular Expressions
Turing machines
Lecture: Automata
Context free grammar
NFA Non Deterministic Finite Automata by Mudasir khushik
Regular language and Regular expression
Regular expressions
Theory of Automata

What's hot (20)

PPT
Lecture 1,2
PPTX
Operator precedance parsing
DOC
Generalized transition graphs
PDF
Pumping lemma for cfl
PPT
Regular Languages
PPT
Context free grammars
PPTX
Alphabets , strings, languages and grammars
PPT
Regular expressions and languages pdf
PPT
Minimization of DFA
PPTX
Chomsky classification of Language
PPTX
Automata Theory - Turing machine
PPTX
Parsing LL(1), SLR, LR(1)
PDF
Flat unit 2
PPT
Chomsky Hierarchy.ppt
PPTX
CONTEXT FREE GRAMMAR
PPTX
Regular Expression to Finite Automata
PPTX
Introduction TO Finite Automata
PPT
Greedy algorithms
PPTX
Context Free Grammar
DOCX
Automata theory
Lecture 1,2
Operator precedance parsing
Generalized transition graphs
Pumping lemma for cfl
Regular Languages
Context free grammars
Alphabets , strings, languages and grammars
Regular expressions and languages pdf
Minimization of DFA
Chomsky classification of Language
Automata Theory - Turing machine
Parsing LL(1), SLR, LR(1)
Flat unit 2
Chomsky Hierarchy.ppt
CONTEXT FREE GRAMMAR
Regular Expression to Finite Automata
Introduction TO Finite Automata
Greedy algorithms
Context Free Grammar
Automata theory
Ad

Viewers also liked (20)

PDF
Context free langauges
PDF
Lecture: Context-Free Grammars
PPT
Context free languages
PPT
Class7
PPT
2. context free langauages
PPT
Properties of cfg
PDF
L3 cfg
PPT
NFA or Non deterministic finite automata
PPT
Simplifiaction of grammar
PPTX
Deterministic context free grammars &non-deterministic
PDF
Pumping Lemma and Regular language or not?
PPTX
Theory of Automata and formal languages Unit 3
PPTX
Theory of Automata and formal languages unit 2
PPTX
Parsing
PDF
Push Down Automata (PDA)
PPTX
Normal forms cfg
PDF
Lecture: Regular Expressions and Regular Languages
PPT
B.tech admission in india
PPT
Lecture 7: Definite Clause Grammars
PPT
Chapter Three(2)
Context free langauges
Lecture: Context-Free Grammars
Context free languages
Class7
2. context free langauages
Properties of cfg
L3 cfg
NFA or Non deterministic finite automata
Simplifiaction of grammar
Deterministic context free grammars &non-deterministic
Pumping Lemma and Regular language or not?
Theory of Automata and formal languages Unit 3
Theory of Automata and formal languages unit 2
Parsing
Push Down Automata (PDA)
Normal forms cfg
Lecture: Regular Expressions and Regular Languages
B.tech admission in india
Lecture 7: Definite Clause Grammars
Chapter Three(2)
Ad

Similar to Context free grammars (20)

PPT
Regular Grammars for theory of automata.ppt
PPT
Lecture_Notes_AutomatContext Free Languages.ppt
PDF
ambiguity grammar.pdf
PPT
Formal Languages and Context-free Languages
PDF
ToC_M1L3_Grammar and Derivation.pdf
PPT
context free grammars automata therory and compiler design
PDF
Regular Language and Regular Grammar Lecture
PPT
Unit-2 Context free grammer. ppt CFG CFL
PPTX
context free grammars_simplification
PPT
163692498 grammar
PPT
PPT
Context free grammer.ppt
PPT
Context free grammar
PPT
INFO-2950-Languages-and-Grammars.ppt
PPTX
Context Free Grammar presentation 2025.pptx
PPT
context-freelanguages and properties lecture note.ppt
PDF
Context Free Grammar
PDF
syntaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pdf
PDF
lec02-Syntax Analysis and LL(1).pdf
Regular Grammars for theory of automata.ppt
Lecture_Notes_AutomatContext Free Languages.ppt
ambiguity grammar.pdf
Formal Languages and Context-free Languages
ToC_M1L3_Grammar and Derivation.pdf
context free grammars automata therory and compiler design
Regular Language and Regular Grammar Lecture
Unit-2 Context free grammer. ppt CFG CFL
context free grammars_simplification
163692498 grammar
Context free grammer.ppt
Context free grammar
INFO-2950-Languages-and-Grammars.ppt
Context Free Grammar presentation 2025.pptx
context-freelanguages and properties lecture note.ppt
Context Free Grammar
syntaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pdf
lec02-Syntax Analysis and LL(1).pdf

More from Shiraz316 (20)

PPTX
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
PPTX
K neareast neighbor algorithm presentation
PPTX
Khi 087 revised dt report
PPTX
Khi 117 revised dt report
PPTX
Khi 164 revised dt report
PPTX
Khi 054 revised dt report
PPTX
Khi 061 revised dt report
PPTX
Khi 022 revised dt report
PPTX
Khi 113 revised dt report
PPTX
Khi 156 revised dt report
PPTX
Khi 142 revised dt report
PPTX
Khi 316 revised dt report
PPTX
Khi 186 revised dt report
PPTX
Khi 052 revised dt report
PPTX
Khi 151 revised dt report
PPTX
Khi 150 revised dt report
PPTX
Khi 078 revised dt report
PPTX
LTE quick introduction session Training
PPTX
LTE Sales Training for CPE Device
PPTX
Witribe Customer Premises Equipment Training for LTE
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
K neareast neighbor algorithm presentation
Khi 087 revised dt report
Khi 117 revised dt report
Khi 164 revised dt report
Khi 054 revised dt report
Khi 061 revised dt report
Khi 022 revised dt report
Khi 113 revised dt report
Khi 156 revised dt report
Khi 142 revised dt report
Khi 316 revised dt report
Khi 186 revised dt report
Khi 052 revised dt report
Khi 151 revised dt report
Khi 150 revised dt report
Khi 078 revised dt report
LTE quick introduction session Training
LTE Sales Training for CPE Device
Witribe Customer Premises Equipment Training for LTE

Recently uploaded (20)

PDF
Ontologies in an Open Knowledge Network: The Example of Hydro Ontologies
DOCX
Aluminum Dome Roofs for Agricultural Waste Tanks Offers a Durable Cover for O...
PPTX
SCADAhjknvbxfbgmmmmmmmmmmmmmmmmmmmmmmm.pptx
PPTX
EVS HUMAN AND ENVIRONMENT- RELATIONSHIP
DOCX
Aluminum Dome Roofs for Rainwater Recovery Tanks Keep Recovered Rainwater Pur...
PPTX
Smart system for emergency planning.pptx
PPTX
Drought management class in a simplified manner
DOCX
Aluminum Dome Roofs for Drinking Water Tanks Shield Water from Debris and Pol...
PPTX
Ecological Agriculture principles...pptx
PPTX
Human Induced Factors of Flooding in Bangladesh
PPTX
Science and Society 011111111111111111111
PPTX
Ph. D. progress Seminar-Hritankhi Tripathy.pptx
PPTX
Psychological Support for Elderly During Health Crises.pptx
PPT
chap031111117717171717177171717171771.ppt
PPTX
FUNGI KINDOM OF DECOMPOSERS GRADE 8 SCIENCE
PPT
vdocument.in_site-planning-by-kevin-lynch.ppt
PDF
nebosh hse certificate in health and safeto leadership
DOCX
Aluminum Dome Roofs for Livestock Water Storage Tanks Guard Farm Water from P...
PPTX
Understanding Socialism and people. Revised.pptx
PDF
climate change , causes , effects and mitigation pdf
Ontologies in an Open Knowledge Network: The Example of Hydro Ontologies
Aluminum Dome Roofs for Agricultural Waste Tanks Offers a Durable Cover for O...
SCADAhjknvbxfbgmmmmmmmmmmmmmmmmmmmmmmm.pptx
EVS HUMAN AND ENVIRONMENT- RELATIONSHIP
Aluminum Dome Roofs for Rainwater Recovery Tanks Keep Recovered Rainwater Pur...
Smart system for emergency planning.pptx
Drought management class in a simplified manner
Aluminum Dome Roofs for Drinking Water Tanks Shield Water from Debris and Pol...
Ecological Agriculture principles...pptx
Human Induced Factors of Flooding in Bangladesh
Science and Society 011111111111111111111
Ph. D. progress Seminar-Hritankhi Tripathy.pptx
Psychological Support for Elderly During Health Crises.pptx
chap031111117717171717177171717171771.ppt
FUNGI KINDOM OF DECOMPOSERS GRADE 8 SCIENCE
vdocument.in_site-planning-by-kevin-lynch.ppt
nebosh hse certificate in health and safeto leadership
Aluminum Dome Roofs for Livestock Water Storage Tanks Guard Farm Water from P...
Understanding Socialism and people. Revised.pptx
climate change , causes , effects and mitigation pdf

Context free grammars

  • 1. Costas Busch - LSU 1 Context-Free Languages
  • 2. Costas Busch - LSU 2 Regular Languages }0:{ nba nn }{ R ww **ba *)( ba  Context-Free Languages
  • 3. Costas Busch - LSU 3 Context-Free Languages Pushdown Automata Context-Free Grammars stack automaton
  • 4. Costas Busch - LSU 4 Context-Free Grammars
  • 5. Costas Busch - LSU 5 Grammars Grammars express languages Example: the English language grammar verbpredicate nounarticlephrasenoun predicatephrasenounsentence    _ _
  • 6. Costas Busch - LSU 6 sleepsverb runsverb dognoun catnoun thearticle aarticle      
  • 7. Costas Busch - LSU 7 Derivation of string “the dog sleeps”: sleepsdogthe verbdogthe verbnounthe verbnounarticle verbphrasenoun predicatephrasenounsentence       _ _
  • 8. Costas Busch - LSU 8 Derivation of string “a cat runs”: runscata verbcata verbnouna verbnounarticle verbphrasenoun predicatephrasenounsentence       _ _
  • 9. Costas Busch - LSU 9 Language of the grammar: L = { “a cat runs”, “a cat sleeps”, “the cat runs”, “the cat sleeps”, “a dog runs”, “a dog sleeps”, “the dog runs”, “the dog sleeps” }
  • 10. Costas Busch - LSU 10 catnoun  Variables Sequence of Terminals (symbols) Productions predicatephrasenounsentence _ Sequence of Variables
  • 11. Costas Busch - LSU 11 Another Example   S aSbSGrammar: Variable Sequence of terminals and variables The right side may be 
  • 12. Costas Busch - LSU 12 Grammar: Derivation of string :   S aSbS abaSbS  ab aSbS  S
  • 13. Costas Busch - LSU 13 Grammar: Derivation of string : aabbaaSbbaSbS  aSbS  S aabb   S aSbS
  • 14. Costas Busch - LSU 14 aaabbbaaaSbbbaaSbbaSbS  aaaabbbbaaaaSbbbb aaaSbbbaaSbbaSbS   Other derivations:   S aSbSGrammar:
  • 15. Costas Busch - LSU 15   S aSbS }0:{  nbaL nn Grammar: Language of the grammar 
  • 16. Costas Busch - LSU 16 We write: Instead of: aaabbbS *  aaabbbaaaSbbbaaSbbaSbS  for zero or more derivation steps A Convenient Notation
  • 17. Costas Busch - LSU 17 nww * 1  nwwww  321 in zero or more derivation steps In general we write: If: ww * Trivially:
  • 18. Costas Busch - LSU 18   S aSbS aaabbbS abS S * * *    Example Grammar Possible Derivations baaaaaSbbbbaaSbbS  
  • 19. Costas Busch - LSU 19   S aSbS |aSbS  thearticle aarticle   theaarticle | Another convenient notation:
  • 20. Costas Busch - LSU 20 Formal Definitions  PSTVG ,,, Set of variables Set of terminal symbols Start variable Set of productions Grammar:
  • 21. Costas Busch - LSU 21 Context-Free Grammar: All productions in are of the form sA  String of variables and terminals ),,,( PSTVG  P Variable
  • 22. Costas Busch - LSU 22 |aSbS   PSTVG ,,, }{SV  },{ baT  },{  SaSbSP variables terminals productions start variable Example of Context-Free Grammar
  • 23. Costas Busch - LSU 23 For a grammar with start variableG S String of terminals or *},:{)( * TwwSwGL   Language of a Grammar:
  • 24. Costas Busch - LSU 24 context-free grammar : }0:{)(  nbaGL nn nn baS   G Example: Since, there is derivation for any 0n |aSbS 
  • 25. Costas Busch - LSU 25 A language is context-free if there is a context-free grammar with L G )(GLL  Context-Free Language definition:
  • 26. Costas Busch - LSU 26 since context-free grammar : }0:{  nbaL nn G Example: is a context-free language generates LGL )( |aSbS 
  • 27. Costas Busch - LSU 27 ||bSbaSaS  abbaabSbaaSaS  Context-free grammar :G Example derivations: abaabaabaSabaabSbaaSaS  )(GL }*},{:{ bawwwR  Palindromes of even length Another Example
  • 28. Costas Busch - LSU 28 || SSaSbS  ababSaSbSSSS  Context-free grammar :G Example derivations: abababaSbabSaSbSSSS  }prefixanyin )()(and ),()(:{ v vnvn wnwnw ba ba  )(GL () ((( ))) (( )) Describes matched parentheses: )b(, a Another Example
  • 29. Costas Busch - LSU 29 Derivation Order and Derivation Trees
  • 30. Costas Busch - LSU 30 Derivation Order Consider the following example grammar with 5 productions: ABS .1   A aaAA .3 .2   B BbB .5 .4
  • 31. Costas Busch - LSU 31 aabaaBbaaBaaABABS 54321  Leftmost derivation order of string aab : At each step, we substitute the leftmost variable ABS .1   A aaAA .3 .2   B BbB .5 .4 Derivation of aab
  • 32. Costas Busch - LSU 32 aabaaAbAbABbABS 32541  Rightmost derivation order of string aab: At each step, we substitute the rightmost variable ABS .1   A aaAA .3 .2   B BbB .5 .4 Derivation of aab
  • 33. Costas Busch - LSU 33 aabaaAbAbABbABS 32541  Rightmost derivation of :aab aabaaBbaaBaaABABS 54321  Leftmost derivation of :aab ABS .1   A aaAA .3 .2   B BbB .5 .4
  • 34. Costas Busch - LSU 34 Derivation Trees Consider the same example grammar: aabaaBbaaABbaaABABS  And a derivation of :aab ABS  |aaAA  |BbB 
  • 35. Costas Busch - LSU 35 ABS  S BA ABS  |aaAA  |BbB  yield AB
  • 36. Costas Busch - LSU 36 aaABABS  a a A S BA ABS  |aaAA  |BbB  yield aaAB
  • 37. Costas Busch - LSU 37 aaABbaaABABS  S BA a a A B b ABS  |aaAA  |BbB  yield aaABb
  • 38. Costas Busch - LSU 38 aaBbaaABbaaABABS  S BA a a A B b  ABS  |aaAA  |BbB  yield aaBbBbaa 
  • 39. Costas Busch - LSU 39 aabaaBbaaABbaaABABS  yield aabbaa  S BA a a A B b   Derivation Tree ABS  |aaAA  |BbB  (parse tree)
  • 40. Costas Busch - LSU 40 aabaaBbaaBaaABABS  aabaaAbAbABbABS  TRY IT OUT! Sometimes, derivation order doesn’t matter Leftmost derivation: Rightmost derivation:
  • 41. Costas Busch - LSU 41 aabaaBbaaBaaABABS  aabaaAbAbABbABS  S BA a a A B b   Give same derivation tree Sometimes, derivation order doesn’t matter Leftmost derivation: Rightmost derivation:
  • 42. Costas Busch - LSU 42 Ambiguity
  • 43. Costas Busch - LSU 43 Grammar for mathematical expressions ))(()( aaaaaaa  Example strings: Denotes any number aEEEEEE |)(|| 
  • 44. Costas Busch - LSU 44 A leftmost derivation for aaa  aaaEaa EEaEaEEE *  aEEEEEE |)(||  PARSE TREE ???
  • 45. Costas Busch - LSU 45 A leftmost derivation for aaa  E EE EE  a a a  aaaEaa EEaEaEEE *  aEEEEEE |)(|| 
  • 46. Costas Busch - LSU 46 aaaEaa EEaEEEEEE   Another leftmost derivation for aEEEEEE |)(||  aaa  PARSE TREE ???
  • 47. Costas Busch - LSU 47 E EE  a a  EE a aaaEaa EEaEEEEEE   Another leftmost derivation for aEEEEEE |)(||  aaa 
  • 48. Costas Busch - LSU 48 aaa  E EE  a a  EE a E EE EE  a a a  Two derivation trees for aEEEEEE |)(|| 
  • 49. Costas Busch - LSU 49 E EE   EE E EE EE  2 2 2 2 2 2 222  aaa take 2a
  • 50. Costas Busch - LSU 50 E EE   EE E EE EE   6222  2 2 2 2 2 2 8222  4 2 2 2 6 2 2 24 8 Good Tree Bad Tree Compute expression result using the tree
  • 51. Costas Busch - LSU 51 Two different derivation trees may cause problems in applications which use the derivation trees: • Evaluating expressions • In general, in compilers for programming languages
  • 52. Costas Busch - LSU 52 Ambiguous Grammar: A context-free grammar is ambiguous if there is a string which has: two different derivation trees or two leftmost derivations G )(GLw (Two different derivation trees give two different leftmost derivations and vice-versa)
  • 53. Costas Busch - LSU 53 E EE  a a  EE a E EE EE  a a a  string aaa  has two derivation trees aEEEEEE |)(||  this grammar is ambiguous since Example:
  • 54. Costas Busch - LSU 54 string aaa  has two leftmost derivations aaaEaa EEaEEEEEE   aaaEaa EEaEaEEE *  aEEEEEE |)(||  this grammar is ambiguous also because
  • 55. Costas Busch - LSU 55 IF_STMT if EXPR then STMT | if EXPR then STMT else STMT Another ambiguous grammar: Variables Terminals Very common piece of grammar in programming languages
  • 56. Costas Busch - LSU 56 If expr1 then if expr2 then stmt1 else stmt2 TWO Parse Trees or Derivation Trees ???
  • 57. Costas Busch - LSU 57 If expr1 then if expr2 then stmt1 else stmt2 IF_STMT expr1 then elseif expr2 then STMT stmt1 if IF_STMT expr1 then else if expr2 then STMT stmt2if stmt1 stmt2 Two derivation trees
  • 58. Costas Busch - LSU 58 In general, ambiguity is bad and we want to remove it Sometimes it is possible to find a non-ambiguous grammar for a language But, in general ιt is difficult to achieve this
  • 59. Costas Busch - LSU 59 aE EE EEE EEE     )( aEF FFTT TTEE |)( | |    Ambiguous Grammar Non-Ambiguous Grammar Equivalent generates the same language A successful example:
  • 60. Costas Busch - LSU 60 aaaFaaFFa FTaTaTFTTTEE   E E T T  F F a T F a a aEF FFTT TTEE |)( | |    Unique derivation tree for aaa 
  • 61. Costas Busch - LSU 61 }{}{ mmnmnn cbacbaL  0, mn An un-successful example: every grammar that generates this language is ambiguous L is inherently ambiguous:
  • 62. Costas Busch - LSU 62 }{}{ mmnmnn cbacbaL  | |11 aAbA AcSS   | |22 bBcB BaSS  21 | SSS  Example (ambiguous) grammar for :L
  • 63. Costas Busch - LSU 63 The string Lcba nnn  has always two different derivation trees (for any grammar) S 1S S 2S 1S c 2Sa For example