You are on page 1of 15

Classification of grammars

Definition: A grammar G is said to be


1) Right-linear if each production in P is
of the form A xB or A x where A
and B are in V and x in T*.
2) Context-free if each production is of the
form A , where A is in V and is
in (VT)*.
3) Context-sensitive if each production is
of the form , where || ||.
4) A grammar with no restrictions as
above is called unrestricted.

Context-Free Grammars
Language generated by a CFG
Derivation sequence
Leftmost derivation sequence
Rightmost derivation sequence
Parse tree (Derivation tree)
Yield of a parse tree
Recursive inference

Examples:
1) A
A0
A1
A 0 A0
A 1 A1
2) L = {0n1n | n 0}

Leftmost derivation always replace the the


leftmost variable (nonterminal) by a production
body (right side of the production).

lm

lm

Rightmost derivation always replace the the


rightmost variable (nonterminal) by a
production body (right side of the production).

rm

rm

Example:
EE+T|T
TT*F|F
F (E) | a

Parse tress tree representation for


derivations
Each interior node is labeled by a
nonterminal
If an interior node is labeled by A and its
children (from left to right) are X 1, X2,
, Xk, then A X1X2Xk is a
production
Leaf nodes are nonterminals, terminals,
or

Example:
S SS | (S) |

Recursive inference:
S w0X1w1X2w2 Xkwk
wi in T* and Xj in V
Then w generated by S is the concatenation
wi and strings generated by Xj in the order

Inference, Derivations, and Parse


Trees
Given a grammar G = (V, T, P, S), the
following are equivalent:
1. The recursive inference procedure
determines that a terminal string w is in
the language of variable A.
2. A * w
3. There is a parse tree with root A and yield
w.

Leftmost
derivation

Rightmost
derivation
Derivation

Parse tree

Recursive
inference

Theorem 5.12 (From Inference to Tree)


Let G = (V, T, P, S) be a CFG. If the
recursive inference procedure tells us that
the string w is in the language of a
nonterminal A, then there is a parse tree
with root A and yield w.

Theorem 5.14 (Tree to leftmost derivation)


Let G = (V, T, P, S) be a CFG and thre be a
parse tree with root labeled A and yield w
where w is in T*. Then thre is a leftmost
derivation sequence A * w in G.

Theorem 5.18 (Derivation to inference)


Let G = (V, T, P, S) be a CFG and suppose
there is a derivation A * w, where w is in
T*. Then the recursive inference procedure
applied to G determines that w is in the
language of A.

Ambiguous Grammars: A CFG G is


ambiguous if there is at least one
sentence w in L(G) for which
there is more than one distinct
derivation tree with frontier w.
Inherent Ambiguity: A CFL L is said
to be inherently ambiguous if all
its grammars are ambiguous

Example:
(1) E E + E | E * E | (E) | a
is ambiguous

(2) L = {aibjck | i = j or j = k}
is inherently ambiguous

You might also like