# Derivation

Derivation is a sequence of production rules. It is used to get the input string through these production rules. During parsing, we have to take two decisions. These are as follows:

• We have to decide the non-terminal which is to be replaced.
• We have to decide the production rule by which the non-terminal will be replaced.

We have two options to decide which non-terminal to be placed with production rule.

## 1. Leftmost Derivation:

In the leftmost derivation, the input is scanned and replaced with the production rule from left to right. So in leftmost derivation, we read the input string from left to right.

### Example:

Production rules:

Input

The leftmost derivation is:

## 2. Rightmost Derivation:

In rightmost derivation, the input is scanned and replaced with the production rule from right to left. So in rightmost derivation, we read the input string from right to left.

### Example

Production rules:

Input

The rightmost derivation is:

When we use the leftmost derivation or rightmost derivation, we may get the same string. This type of derivation does not affect on getting of a string.

## Examples of Derivation:

### Example 1:

Derive the string "abb" for leftmost derivation and rightmost derivation using a CFG given by,

Solution:

Leftmost derivation: Rightmost derivation: ### Example 2:

Derive the string "aabbabba" for leftmost derivation and rightmost derivation using a CFG given by,

Solution:

Leftmost derivation:

Rightmost derivation:

### Example 3:

Derive the string "00101" for leftmost derivation and rightmost derivation using a CFG given by,

Solution:

Leftmost derivation:

Rightmost derivation:

Next TopicDerivation Tree

### Feedback   