Loading in 5 sec....

Simplifications of Context-Free GrammarsPowerPoint Presentation

Simplifications of Context-Free Grammars

- 76 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Simplifications of Context-Free Grammars' - herrod-horne

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Simplifications of Context-Free Grammars

### Normal FormsforContext-free Grammars

Nullable Variables

Nullable Variable:

Substitute

Final grammar

useless

Variables

useless

useless

useless

useless

useless

useless

A production is useless

if any of its variables is useless

Removing Useless Productions

Example Grammar:

that produce terminal symbols:

(the rest variables are useless)

Remove useless productions

reachable from S

(the rest variables are useless)

Final Grammar

Remove useless productions

Removing All

- Step 1: Remove Nullable Variables
- Step 2: Remove Unit-Productions
- Step 3: Remove Useless Variables

Final grammar in Chomsky Normal Form:

Initial grammar

From any context-free grammar

(which doesn’t produce )

not in Chomsky Normal Form

we can obtain:

An equivalent grammar

in Chomsky Normal Form

- First remove:
- Nullable variables
- Unit productions

For any context-free grammar

(which doesn’t produce )

there is an equivalent grammar

in Chomsky Normal Form

- Chomsky normal forms are good
- for parsing and proving theorems

- It is very easy to find the Chomsky normal
- form for any context-free grammar

For any context-free grammar

(which doesn’t produce )

there is an equivalent grammar

in Greinbach Normal Form

- Greinbach normal forms are very good
- for parsing

- It is hard to find the Greinbach normal
- form of any context-free grammar

Program

Add v,v,0

cmp v,5

jmplt ELSE

THEN:

add x, 12,v

ELSE:

WHILE:

cmp x,3

...

v = 5;

if (v>5)

x = 12 + v;

while (x !=3) {

x = x - 3;

v = 10;

}

......

Compiler

A parser knows the grammar

of the programming language

PROGRAM STMT_LIST

STMT_LIST STMT; STMT_LIST | STMT;

STMT EXPR | IF_STMT | WHILE_STMT

| { STMT_LIST }

EXPR EXPR + EXPR | EXPR - EXPR | ID

IF_STMT if (EXPR) then STMT

| if (EXPR) then STMT else STMT

WHILE_STMT while (EXPR) do STMT

The parser finds the derivation

of a particular input

derivation

Parser

input

E => E + E

=> E + E * E

=> 10 + E*E

=> 10 + 2 * E

=> 10 + 2 * 5

E -> E + E

| E * E

| INT

10 + 2 * 5

derivation

E

E => E + E

=> E + E * E

=> 10 + E*E

=> 10 + 2 * E

=> 10 + 2 * 5

+

E

E

10

E

E

*

2

5

Phase 1

Phase 3

Time complexity of exhaustive search

Suppose there are no productions of the form

Number of phases for string :

Time for phase 2:

possible derivations

Time for phase :

possible derivations

for specialized grammars

S-grammar:

symbol

string

of variables

appears once

Pair

Each string has a unique derivation

In the exhaustive search parsing

there is only one choice in each phase

Time for a phase:

Total time for parsing string :

For general context-free grammars:

There exists a parsing algorithm

that parses a string

in time

(we will show it in the next class)

Time Complexity:

Observation:

The CYK algorithm can be

easily converted to a parser

(bottom up parser)

Download Presentation

Connecting to Server..