Download - Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Transcript
Page 1: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Context Free Grammars

UNIT –III

By

Prof.T.H.Gurav

Smt.Kashibai Navale COE, Pune

Page 2: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Context-Free Grammar

Definition. A context-free grammar is a 4-tuple :

G = (V, T, P, S) OR G = (V, Σ, P, S)

V = Non-terminal(variables) a finite set

T = alphabet or terminals a finite set

P = productions a finite set

S = start variable SV

Productions’ form,

A α

where AV, α (VS T)*: NT NT OR NT T

Page 3: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

String generation by CFG

• Generate strings by repeated replacement of non-

terminals with string of terminals and non-

terminals.

1. write down start variable (non-terminal)

2. replace a non-terminal with the right-hand-

side of a rule that has that non-terminal as its

left-hand-side.

3. repeat above until no more non-terminals

Page 4: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Context-Free Languages

• Definition. Given a context-free grammar

• G = (T, NT, P, S), the language generated or derived

from G is the set:

L(G) = {w ε T* | }

• All intermediate stages of the strings resulting from the

start S in the derivation process are called as sentential

form.

• Definition. A language L is context-free if there is a

context-free grammar G = (T, NT, P, S), such that L is

generated from G

S * w

Page 5: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Types of derivations

• There are two ways to derive the string from the grammar

1. Leftmost derivation : When at each step of derivation a production is applied to the leftmost NT, then the derivation is said to be leftmost.

2. Rightmost derivation: When at each step of derivation a production is applied to the rightmost NT, then the derivation is said to be rightmost.

Page 6: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

• Consider the following grammar

• S A | A B

• A e | a | A b | A A

• B b | b c | B c | b B

Sample derivations:

S AB AAB aAB aaB aabB aabb

S AB AbB Abb AAbb Aabb aabb

These two derivations use same productions, but in different orders.

Page 7: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Parse Trees

• The pictorial representation of the derivations in

the form of a tree is very useful. This tree is called

parse tree OR derivation Tree.

Root label = start node.

Each interior label = variable.

Each parent/child relation = derivation step.

Each leaf label = terminal or e.

All leaf labels together = derived string = yield.

S

A B

A A B b

a a b

Page 8: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Yield of a parse Tree

• If we look at the leaves of any parse tree and

concatenate them from left to right we get a string

called yield of parse tree.

Page 9: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Derivation Trees/parse trees

Infinitely many others

possible.

S

A B

A A b

a

a

b A

S

A

A A

A A b A

a e

a

b A

S

A B

A A B b

a a b

S A | A B

A e | a | A b | A A

B b | b c | B c | b B

w = aabb Other derivation trees

for this string?

? ?

Page 10: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

CFGs & CFLs: Example 1

{an bn | n0}

It is non regular already proved by pumping lemma.

Can be represented by CFG

G = ({S}, {a,b}, {S Є, S a S b}, S)

Page 11: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example2

Eg: Construct a CFG for language L which has all strings

which are palindromes over ∑={a,b}

Example : madam is palindrome

Gpal=({S}, {a,b}, A, S),

where A={S→e,

S→0,

S→1,

S→0S0,

S→1S1}

Sometimes we group productions with the same head, e.g.

S→e | 0 | 1 | 0S0 | 1S1.

Page 12: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example

• The string abaaba can be derived as

S start symbol

aSa Rule SaSa

abSba Rule SbSb

abaSaba Rule SaSa

abaЄaba Rule S Є

abaaba is a palindrome

Page 13: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Ambiguty:Defination

• A CFG is ambiguous if there is a string in

the language that is the yield of two or more

parse trees.

• A CFG is ambiguous if there is a terminal

string that has multiple leftmost derivations

from the start variable. Equivalently:

multiple rightmost derivations

Page 14: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example

Let G={{E},{a,b,-,/},P,E}

P = { EE-E | E/E | a | b} E is start symbol

Solution : Consider the derivation of the string-> a – b/a

Derivation 1 Derivation 2

E=>E-E E=>E/E

E=>a-E/E E=>E-E/E

E=>a-a/E E=> a-E/E

E=>a-a/b E=>a-a/E

E=>a-a/b

Page 15: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Parse trees

E

E E

E E

/

-

a b

a

E

E E

E E

-

/

a b

a

Page 16: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Reasons

• The relative precedence of subtraction and

division are not uniquely defined.

• And two groupings correspond to

expressions with different values.

• It doesn’t captures Associativity!!

Page 17: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Unambiguous G

• Try for a-b/a Now!!

E → E - T | T

T → T / F | F

F → (E) | I

I → a|b

Page 18: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

CFG Simplification

Grammar may consists of extra symbols which unnecessarily

increases length of grammar. So simplification needed.

1. Eliminate ambiguity.

2. Eliminate “useless” variables.

3. Eliminate e-productions: Ae.

4. Eliminate unit productions: AB.

5. Eliminate redundant productions.

Page 19: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Eliminate “useless” variables.

• A variable is useful if it occurs in a derivation that begins

with the start symbol and generates a terminal string.

• Two types of the symbols are useless

• A symbol (NT or T )

– Non generating symbols : symbols not generating any terminal

string

– Non reachable symbols : can not be reached from Start symbol.

We use Dependency Graph method to decide not reachable NT.

S aA

BA S aA BA

Here A is Reachable and B is not Reachable from S

A B S

Page 20: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Eliminate e-productions: Ae.

• A CFG may have productions of the form A e . This

production is used to erase A . Such production is called as

null production .

• While eliminating e rule from grammar .. Meaning of

CFG should not be changed.

Example:G= S0S| 1S | e construct G’ generating L(G)-{e}

Solution : Then replace Se in other rules to generate new

rules.

ie S0 and S1

There fore G’ = S0S| 1S| 1 | 0

Page 21: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Eliminate unit productions:

AB

• Unit productions are the productions in which one NT

gives another NT

Eg: AB OR XY

Steps : 1. Select unit production AB , such that there exists

production BX1X2X3…Xn

2. Then while removing AB we should

add A X1X2X3…Xn in the grammar .

eliminate AB from grammar

}

Page 22: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example

G { S0A | 1B | C

A0S | 00

B1 | A

C01 }

Solution : unit productions are SC BA

We have C01 … So S0A | 1B | 01

We have A0S | 00 … So B0S | 00 | 1

Thus G’ = {S0A | 1B | 01

A0S | 00

B0S | 00 | 1

C01 }

Page 23: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Two normal forms :

1. Chomsky N F

2. Greibach N F

Page 24: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Chomsky Normal Form

• If all rules of the grammar are of the form.

NT NT . NT

NT T

In CNF we have restriction on the length of RHS

and nature of Symbols in RHS of Rules.

Page 25: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Greibach Normal Form

• A CFG is in Griebach Normal Form if each rule is of the form

NT one terminal . Any number of NT

Example

SaA is in GNF

Sa

But SAA Or SAa is not in GNF

Page 26: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Rules: 1. Substitution Rule

Let G=(V,T,P,S) be a given Grammar and if production

A Ba &

B β1 | β2 | β3 | ….| βn

then we can convert A rule to GNF as

A β1a | β2a | β3a | ….| βna

Example : let S Aa and A aA | bA | aAS | b

We can apply rule 1 as

S aAa | bAa | aASa | ba

A aA | bA | aAS

Page 27: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

2. Left Recursion Rule

Let G=(V,T,P,S) be a given Grammar and if production

such that βi do not start with A then equivalent grammar in

GNF is :

A β1 | β2 | β3 | ….| βn

A β1 Z | β2 Z | β3Z | ….| βnZ

Z a1 | a2 | a3 | ….| an

Z a1Z | a2Z | a3Z | ….| anZ

A Aa1 | Aa2| Aa3|……| β1 | β2 | β3 | ….| βn

Page 28: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Left linear grammar and right

linear grammar 1. If NT appears as a rightmost symbol in each production

of CFG then it is called right-linear grammar.

2. If NT appears as a leftmost symbol in each production of

regular grammar then it is called left-linear grammar.

• Linear grammars (either left or right) actually produce

the Regular Languages, and also called as regular

Grammar. ( which means that all the Regular Languages are also CF.)

Page 29: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Regular grammars

Right Linear Grammars:

Rules of the forms

A → ε

A → a

A → aB

A,B: variables(NT) and

a: terminal

Left Linear Grammars:

Rules of the forms

A → ε

A → a

A → Ba

A,B: variables(NT) &

A: terminal

Page 30: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

RLG to FA

Grammar G is right-linear

Example:

aBbB

BaaA

BaAS

|

|

Page 31: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Steps

Consider grammar G is given , corresponding FA ,

M will be obtained as follows:

1. Initial state of FA will be start NT of G.

2. A Production in G corresponds to transition in M

3. The transitions in M are defined as :

1. Each production AaB gives transition from State A

to B on input alphabet ‘a’.

2. Each production Aa gives transition from State A to

Qf(final state of FA) on input alphabet ‘a’.

Page 32: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example

Construct NFA , M such that

bBaB

BaA

BaAS

|

|

Page 33: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

1. Every state is a grammar variable:

2. Add edges to each production

(a) SaA

SB

(b) AaB

(C) Ba

BbB

S FV

A

B

special final state

a

e

aa

b

L(G) = L(M)

Page 34: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

FA to RLG

• Steps :

1. Start State of the FA will become the Start Symbol of the G

2. Create set of Productions as

a. If q0(initial state of the FA) Ԑ F then add a production S Ԑ to P

b. For every Transition of the form ,

add production BaC

a

c.

Add production BaC and Ba

B C

B C a

Page 35: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

FA to RLG(example)

Convert FA to a RLG

a

b

a

be

0q 1q 2q

3q

Page 36: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

0q 1qa

10 aqq

b

11 bqq

a2q

21 aqq

b

3q

32 | bqbq

e

13 qq

LMLGL )()(

Page 37: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Conversion from RLG to LLG and

Vice versa

fig : From RLG to LLG

Steps :

1 Represent RLG using Transition graph(FA) .

2. Interchange the start state and the Final State .

3.Reverse the directions of all transitions keeping the labels

and the states unchanged.

4. Write left linear G from the changed transition graph.

Right Linear G

Transition Graph

Left Linear G

Page 38: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Properties of CFL

1. The union and concatenation of two context-free languages is context-free, but the intersection need not be.

2. The reverse of a context-free language is context-free, but the complement need not be.

3. Every regular language is context-free because it can be described by a regular grammar.

4. The intersection of a context-free language and a regular language is always context-free.

5. There exist context-sensitive languages which are not context-free.

6. To prove that a given language is not context-free, one may employ the pumping lemma for context-free languages

Page 39: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Pumping lemma for CFL

• Let G be a CFG. Then there exists a

constant ‘n’ such that any string w ε L(G)

with |w|>=n can be rewritten as w=uvxyz,

subject to the following conditions: 1. |vxy|<=n , the middle portion is less than n.

2. |vy| = Є strings v and y will be pumped.

3. For all i>=0 uvixyiz is in L. the two strings v and y can

be pumped zero or more times.

Page 40: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

x u z y v

Page 41: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example 1

• L = {anbncn | n 0}

• Assume L is a CFL,

• Choose w = a2b2c2 in L

• Applying PL, w = uvxyz, where |vy|>0 and |vxy|p, such that uvixyiz in L for all i0

• Two possible cases:

– vxy = (combination of a & b) , uv2xy2z will result in more a’s and/or more b’s than c’s, not in L

– vxy = (combination of b & c), uv2xy2z will result in more b’s and/or more c’s than a’s, not in L

• Contradiction, L is not a CFL

Page 42: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Grammar types

• There are 4 types of grammars according to the types of

rules:

• Each type recognizes a set of languages.

– General grammars → RE languages

– Context Sensitive grammars → CS languages

– Context Free grammars → CF languages

– Linear grammars → Regular languages

Page 43: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Chomsky Hierarchy

• Comprises four types of languages and their associated

grammars and machines.

• Type 3: Regular Languages

• Type 2: Context-Free Languages

• Type 1: Context-Sensitive Languages

• Type 0: Recursively Enumerable Languages

• These languages form a strict hierarchy

Page 44: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

1. Type 3 : A є

Aa | aB

ABa

2. Type 2:

where A ε V and α ε (V union T)*

3. Type 1:

αAβ αXβ with | β | >=| α |

where β ,and X are strings of NT and/or T

with X not NULL and A is NT.

Page 45: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Language Grammar Machine Example

Regular

Language

Regular Grammar

Right-linear

grammar

Left-linear

grammar

Deterministic or

Nondeterministic

Finite-state

Acceptor(FA)

a*

Context-free

Language

Context-free

grammar

Pushdown

automaton(PDA)

anbn

Context-

sensitive

Context-sensitive

grammar

Linear-bounded

Automaton

anbncn

Recursively

enumerable

Unrestricted

grammar

Turing

machine(TM)

Any computable

function

Page 46: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Graph grammars

• Graph grammars has been invented in order

to generalize (Chomsky) string grammars.

Page 47: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Graph grammars: definition

• A graph grammar is a pair:

GG = (G0,P)

G0 is called the starting graph and P is a set of production rules

L(GG) is the set of graphs that can be derived starting with G0 and applying the rules in P

Page 48: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Continue..

• A set of production rules are used to replace

one subgraph by another.

• The process of replacing depends upon the

embedding: edges to/from the old subgraph

must be transformed into edges to/from the

new subgraph.

Page 49: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Types of GG

• Often, on a high level, two kinds of graph grammars are distinguished:

– Hyperedge replacement grammars

• Rewrite rule replaces (hyper)edge by new graph

– Node replacement grammars • Rewrite rule replaces node by new graph

Page 50: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Node replacement grammars

• node replacement grammars with rules of

the form:

N G / E

Node label Labeled graph Embedding rules

Replace any node with label N by G, connecting

G to N’s neighborhood according to the embedding rules listed in E.

Embedding rules are based on node labels.

Page 51: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Example NR-GG rule

N a

c c

/ {(a,b), (b,c)} b b

N

c c

b b

a

a b

c a

N

c c

b b

a

a b

c a

Page 52: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

b b a

c c

Example NR-GG rule

N a

c c

/ {(a,b), (b,c)} b b

N

c c

b b

a

a b

c a

c c

b b

a

a b

c a

Page 53: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Production Rules

• Following two types are used to describe

the production rules in GG.

1. Algebraic (using gluing construction)

2. Set theoretic( uses expressions to describe

the embedding

Page 54: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Applications

• Picture processing : A picture can be

represented as a graph , where labelled

nodes represents primitives and labelled

edges represents geometric representations(

such as is right of , is bellow)

• Diagram recognition:

Page 55: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Recursively Enumerable Languages

• A TM accepts a string w if the TM halts in a final state. A

TM rejects a string w if the TM halts in a non final state or

the TM never halts.

• A language L is recursively enumerable if some TM

accepts it. Hence they are also called as Turing

Acceptable L .

• Recursively Enumerable Languages are also called

Recognizable

Page 56: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Input string

Turing Machine for Lacceptq

rejectq

For a Turing-Acceptable language : L

It is possible that for some input string the machine enters an infinite loop

Page 57: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Recursive Language

• Recursive Language : A language L is recursive if some TM

accepts it and halts on every input.

• Recursive languages are also called Decidable Languages

because a Turing Machine can decide membership in those

languages (it can either accept or reject a string).

Page 58: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Input string

Accept

Reject

Decider for L

Decision On Halt:

acceptq

rejectq

For a decidable language : L

For each input string, the computation halts in the accept or reject state

Page 59: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Undecidable Languages

• undecidable language = not decidable language

• If there is no Turing Machine which accepts the

language and makes a decision (halts) for every

input string.

• Note : (machine may make decision for some

input strings)

• For an undecidable language, the corresponding

problem is undecidable (unsolvable):

Page 60: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Applications of RE and CFG in

compilers

Page 61: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Programming

Language

(Source) Compiler

Machine

Language

(Target)

c

Page 62: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

The Structure of a Compiler

c

Page 63: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

1. RE and FA : Are usually used to classify the basic

symbols (e.g. identifiers, constants,keywords) of a

language.

2. Context free Grammar:

1. Describes the structure of a program.

2. are used to count: brackets: (), begin...end,

if...then...else

c

Page 64: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Lexical Analysis/ Scanning

Converts a stream of characters (input program) into a

stream of tokens.

Terminology

Token: Name given to a family of words.

e.g., integer constant

Lexeme: Actual sequence of characters representing a

word. e.g., 32894

Pattern: Notation used to identify the set of lexemes

represented by a token. e.g., [0 − 9]+

c

Page 65: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Some more examples

Token Sample

Lexemes

Pattern

while while while

integer constant 32894, -1093, 0 [0-9]+

identifier buffer size [a-zA-Z]+

c

Page 66: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Patterns

How do we compactly represent the set of all lexemes

corresponding to a token?

For instance: The token integer constant represents

the set of all integers: that is, all sequences of digits (0–9),

preceded by an optional sign (+ or −).

Obviously, we cannot simply enumerate all lexemes.

Use Regular Expressions.

c

Page 67: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Regular Definitions

Assign “names” to regular expressions.

For example,

digit → 0 | 1 | ··· | 9

natural → digit digit∗

Shorthands:

a+: Set of strings with one or more occurrences of a. a*: Set

of strings with zero or one occurrences of a.

Example:

integer → (+|−)*digit+

c

Page 68: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Regular Definitions and Lexical Analysis

Regular Expressions and Definitions specify sets of strings

over an input alphabet.

They can hence be used to specify the set of lexemes

associated with a token.

That is, regular expressions and definitions can be used as

the pattern language

c

Page 69: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Parsing/ syntax analysis

Main function of parser: Produce a parse tree from

the stream of tokens received from the lexical analyzer

which is then used by Code Generator to produce target

code.

This tree will be the main data structure that a

compiler uses to process the program. By traversing this

tree the compiler can produce machine code.

Secondary function of parser: Syntactic error

detection – report to user where any error in the source

code are.

c

Page 70: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Applications of RE

1. Data Validation:

Test for a pattern within a string.

For example, you can test an input string to see if a

telephone number pattern or a credit card number

pattern occurs within the string. This is called data

validation.

c

Page 71: Context Free Grammars - E-STUDytoccomp.weebly.com/uploads/3/8/9/3/38938075/3.context_free_gra… · Context-Free Grammar Definition. A context-free grammar is a 4-tuple : G = (V,

Continue…

2. Patten matching:

You can find specific text within a document or input field.

For example, you may need to search an entire Web site,

remove outdated material, and replace some HTML

formatting tags. In this case, you can use a regular

expression to determine if the material or the HTML

formatting tags appears in each file. This process reduces

the affected files list to those that contain material

targeted for removal or change. You can then use a

regular expression to remove the outdated material.

Finally, you can use a regular expression to search for and

replace the tags.

c