- 222 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Context-Free Grammars – Chomsky Normal Form' - Olivia

**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

Chomsky Normal Form

- A context-free grammar is in Chomsky Normal Form (CNF) if each rule is of the form
- ABC, or
- Aa,

where B and C are not S.

- Furthermore, the rule S is allowed.

Chomsky Normal Form

- Theorem: Every context-free language is generated by a grammar in CNF.

Chomsky Normal Form

- Constructive proof (outline):
- Add a new start symbol S0.
- Eliminate all rules A.
- Eliminate all unit rules AB.
- Convert all remaining rules to the proper form.

Chomsky Normal Form

- Proof (detailed):
- Add a new start symbol S0.
- Add the rule S0S.
- Eliminate all rulesA.
- For each rule A and each rule B uAv, add a rule B uv.
- Eliminate the rule A.

Example

- Start with the grammar
- SSXS |
- X ab |
- Add the rule
- S0S

Example

- We now have
- S0S
- SSXS |
- X ab |

Example

- Apply the rules S and X to the other rules, creating the rules
- S X
- S SS
- S XS
- S SX
- S S
- Don’t bother with the last rule.

Example

- Eliminate the rules
- S
- X

Example

- We now have
- S0S |
- S SXS | SS | SX | XS | X
- X ab

Chomsky Normal Form

- Proof (detailed):
- Eliminate all unit rulesAB.
- If AB and Bu are rules, then add the rule Au.
- Eliminate the rule AB.

Chomsky Normal Form

- Add the rules
- S ab
- S0SXS | SS | SX | XS | X | ab
- Eliminate the rules
- S0S
- S X

Example

- We now have
- S0SXS | SS | SX | XS | ab |
- S SXS | SS | SX | XS | ab
- X ab

Chomsky Normal Form

- Eliminate all mixed rules.
- Add rules
- Aa

for all terminals appearing in strings of length 2.

- Then replace a with A in those strings.

Example

- We now have
- S0SXS | SS | SX | XS | AB |
- S SXS | SS | SX | XS | AB
- X AB
- A a
- B b

Chomsky Normal Form

- Finally, eliminate all long rules.
- Break all strings of length 2 into a series of strings of length 2.

Chomsky Normal Form

- Replace the rule
- A B1B2…Bk

with

- A B1C1
- C1 B2C2
- …
- Ck – 2 Bk – 2Ck – 2
- Ck – 1 Bk – 1Bk

Example

- Replace
- S0SXS
- S SXS
- with
- S0SY
- S SY
- Y XS

Example

- The final result is
- S0SY | SS | SX | XS | AB |
- S SY | SS | SX | XS | AB
- X AB
- Y XS
- A a
- B b

A Derivation in CNF

- Use this grammar in CNF to derive the string ababab.
- S0 SY SXS ABXS

ABABS ABABAB

aBABAB abABAB

abaBAB ababAB

ababaB ababab.

CNF Derivations

- Theorem: If a grammar G is in CNF and a string w in L(G) has length n, then w will be derived from G in exactly 2n – 1 steps.

The Membership Problem

- This theorem allows us to determine whether a given string is derivable from a given grammar.
- This is called the Membership Problem.

Example

- Show that the string abba is not derivable from the grammar of the previous example.

Example

- Put the grammar

EE + E | E * E | (E) | a | b | c

into CNF.

- Then show that the string c++ is not derivable from it.

Download Presentation

Connecting to Server..