• Nie Znaleziono Wyników

Chomsky and Greibach Normal Forms

N/A
N/A
Protected

Academic year: 2021

Share "Chomsky and Greibach Normal Forms"

Copied!
60
0
0

Pełen tekst

(1)

Chomsky and Greibach Normal Forms

Chomsky and Greibach Normal Forms– p.1/24

(2)

Simplifying a CFG

It is often convenient to simplify CFG One of the simplest and most useful simplified forms of

CFG is called the Chomsky normal form

Another normal form usually used in algebraic specifications is Greibach normal form

Note the difference between grammar cleaning and simplification

(3)

Simplifying a CFG

It is often convenient to simplify CFG

One of the simplest and most useful simplified forms of CFG is called the Chomsky normal form

Another normal form usually used in algebraic specifications is Greibach normal form

Note the difference between grammar cleaning and simplification

Chomsky and Greibach Normal Forms– p.2/24

(4)

Simplifying a CFG

It is often convenient to simplify CFG

One of the simplest and most useful simplified forms of CFG is called the Chomsky normal form

Another normal form usually used in algebraic specifications is Greibach normal form

Note the difference between grammar cleaning and simplification

(5)

Simplifying a CFG

It is often convenient to simplify CFG

One of the simplest and most useful simplified forms of CFG is called the Chomsky normal form

Another normal form usually used in algebraic specifications is Greibach normal form

Note the difference between grammar cleaning and simplification

Chomsky and Greibach Normal Forms– p.2/24

(6)

Note

Normal forms are useful when more advanced topics in

computation theory are approached, as we shall see further

(7)

Definition

A context-free grammar is in Chomsky normal form if every rule is of the form:

    

   

where



is a terminal,

  

are nonterminals, and

 

may not be the start variable (the axiom)

Chomsky and Greibach Normal Forms– p.4/24

(8)

Note

The rule

  

, where is the start variable, is not ex-

cluded from a CFG in Chomsky normal form.

(9)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions

Order of transformations: (1) add a new start variable, (2)

eliminate all -rules, (3) eliminate unit-rules, (4) convert other rules Check that the obtained CFG defines the same language

Chomsky and Greibach Normal Forms– p.6/24

(10)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions

Order of transformations: (1) add a new start variable, (2)

eliminate all -rules, (3) eliminate unit-rules, (4) convert other rules Check that the obtained CFG defines the same language

(11)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG



in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions

Order of transformations: (1) add a new start variable, (2)

eliminate all -rules, (3) eliminate unit-rules, (4) convert other rules Check that the obtained CFG defines the same language

Chomsky and Greibach Normal Forms– p.6/24

(12)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG



in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions Order of transformations: (1) add a new start variable, (2)

eliminate all -rules, (3) eliminate unit-rules, (4) convert other rules Check that the obtained CFG defines the same language

(13)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG



in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions

Order of transformations: (1) add a new start variable, (2)

eliminate all -rules, (3) eliminate unit-rules, (4) convert other rules Check that the obtained CFG defines the same language

Chomsky and Greibach Normal Forms– p.6/24

(14)

Theorem 2.9

Any context-free language is generated by a context-free grammar in Chomsky normal form.

Proof idea:

Show that any CFG can be converted into a CFG



in Chomsky normal form

Conversion procedure has several stages where the rules that violate Chomsky normal form conditions are replaced with

equivalent rules that satisfy these conditions

Order of transformations: (1) add a new start variable, (2)

(15)

Proof

Let

 

 

  

be the original CFG.

Step 1: add a new start symbol to , and the rule to

Note: this change guarantees that the start symbol of does not occur on the of any rule

Chomsky and Greibach Normal Forms– p.7/24

(16)

Proof

Let

 

 

  

be the original CFG.

Step 1: add a new start symbol  to , and the rule    to  Note: this change guarantees that the start symbol of does not occur

on the of any rule

(17)

Proof

Let

 

 

  

be the original CFG.

Step 1: add a new start symbol  to , and the rule    to  Note: this change guarantees that the start symbol of



does not occur on the  of any rule

Chomsky and Greibach Normal Forms– p.7/24

(18)

Step 2: eliminate -rules

Repeat

1. Eliminate the rule    from  where  is not the start symbol 2. For each occurrence of  on the  of a rule, add a new rule to 

with that occurrence of  deleted

Example: replace     by    



 

; replace      by     



       

  

3. Replace the rule    , (if it is present) by    



unless the rule    has been previously eliminated

until all



rules are eliminated

(19)

Step 3: remove unit rules

Repeat

1. Remove a unit rule     

2. For each rule    , add the rule    to , unless

 

was a unit rule previously removed

until all unit rules are eliminated

Note:



is a string of variables and terminals

Chomsky and Greibach Normal Forms– p.9/24

(20)

Convert all remaining rules

Repeat

1. Replace a rule         ,   , where each ,  , is a variable or a terminal, by:

   

,      ,   ,         where  ,  ,   ,    are new variables

2. If   replace any terminal  with a new variable   and add the rule    

until no rules of the form

        

with

 

remain

(21)

Convert all remaining rules

Repeat

1. Replace a rule         ,   , where each ,  , is a variable or a terminal, by:

   

,      ,   ,         where  ,  ,   ,    are new variables

2. If   replace any terminal  with a new variable   and add the rule    

until no rules of the form

        

with

 

remain

Chomsky and Greibach Normal Forms– p.10/24

(22)

Convert all remaining rules

Repeat

1. Replace a rule         ,   , where each ,  , is a variable or a terminal, by:

   

,      ,   ,         where  ,  ,   ,    are new variables

2. If   replace any terminal  with a new variable   and add the rule    

until no rules of the form

        

with

 

remain

(23)

Example CFG conversion

Consider the grammar  whose rules are:

     

    

   

Notation: symbols removed are green and those added are red.

After first step of transformation we get:

  

      

    

   

Chomsky and Greibach Normal Forms– p.11/24

(24)

Example CFG conversion

Consider the grammar  whose rules are:

     

    

   

Notation: symbols removed are green and those added are red.

After first step of transformation we get:

       

(25)

Example CFG conversion

Consider the grammar  whose rules are:

     

    

   

Notation: symbols removed are green and those added are red.

After first step of transformation we get:

  

      

    

   

Chomsky and Greibach Normal Forms– p.11/24

(26)

Removing rules

Removing   :

  

    

    

  

Removing   :

  

        

    

(27)

Removing rules

Removing   :

  

    

    

  

Removing   :

  

        

    

 

Chomsky and Greibach Normal Forms– p.12/24

(28)

Removing rules

Removing   :

  

    

    

  

Removing   :

  

        

    

(29)

Removing unit rule

Removing  :

  

         

   

 

Removing   :

         

        

   

 

Chomsky and Greibach Normal Forms– p.13/24

(30)

Removing unit rule

Removing  :

  

         

   

 

Removing   :

         

        

   

(31)

Removing unit rule

Removing  :

  

         

   

 

Removing   :

         

        

   

 

Chomsky and Greibach Normal Forms– p.13/24

(32)

More unit rules

Removing   :

        

       

    

 

Removing   :

        

       

          

(33)

More unit rules

Removing   :

        

       

    

 

Removing   :

        

       

          

 

Chomsky and Greibach Normal Forms– p.14/24

(34)

More unit rules

Removing   :

        

       

    

 

Removing   :

        

       

          

(35)

Converting remaining rules

            

           

              

   

   

   

Chomsky and Greibach Normal Forms– p.15/24

(36)

Converting remaining rules

            

           

              

   

   

   

(37)

Converting remaining rules

            

           

              

   

   

   

Chomsky and Greibach Normal Forms– p.15/24

(38)

Note

The conversion procedure produces several variables

along with several rules

. Since all these represent the same rule, we may simplify the result using a single variable

and a single rule

(39)

Note

The conversion procedure produces several variables

along with several rules

. Since all these represent the same rule, we may simplify the result using a single variable

and a single rule

Chomsky and Greibach Normal Forms– p.16/24

(40)

Note

The conversion procedure produces several variables

along with several rules

. Since all these represent the same rule, we may simplify the result using a single variable

and a single rule

(41)

Greibach Normal Form

A context-free grammar

     

is in

Greibach normal form if each rule

 

has the property:



   

,



  

,



and



.

Note: Greibach normal form provides a justifica- tion of operator prefix-notation usually employed in algebra.

Chomsky and Greibach Normal Forms– p.17/24

(42)

Greibach Normal Form

A context-free grammar

     

is in

Greibach normal form if each rule

 

has the property:



   

,



  

,



and



.

Note: Greibach normal form provides a justifica-

tion of operator prefix-notation usually employed

in algebra.

(43)

Greibach Normal Form

A context-free grammar

     

is in

Greibach normal form if each rule

 

has the property:



   

,



  

,



and



.

Note: Greibach normal form provides a justifica- tion of operator prefix-notation usually employed in algebra.

Chomsky and Greibach Normal Forms– p.17/24

(44)

Greibach Theorem

Every CFL where

 

can be generated by a CFG in Greibach normal form.

Proof idea: Let 

 

 



be a CFG generating . Assume that is in Chomsky normal form

Let  



  

     

be an ordering of nonterminals.

Construct the Greibach normal form from Chomsky normal form

(45)

Greibach Theorem

Every CFL where

 

can be generated by a CFG in Greibach normal form.

Proof idea: Let 

 

 



be a CFG generating . Assume that is in Chomsky normal form

Let  



  

     

be an ordering of nonterminals.

Construct the Greibach normal form from Chomsky normal form

Chomsky and Greibach Normal Forms– p.18/24

(46)

Greibach Theorem

Every CFL where

 

can be generated by a CFG in Greibach normal form.

Proof idea: Let 

 

 



be a CFG generating . Assume that is in Chomsky normal form

Let  



  

     

be an ordering of nonterminals.

Construct the Greibach normal form from Chomsky normal form

(47)

Construction

1. Modify the rules in  so that if       then  

2. Starting with  and proceeding to  this is done as follows:

(a) Assume that productions have been modified so that for

 

,       only if  

(b) If      is a production with   , generate a new set of productions substituting for the  the rhs of each 

production

(c) Repeating (b) at most    times we obtain rules of the form

    

,    (d) Replace rules

     

by removing left-recursive rules

Chomsky and Greibach Normal Forms– p.19/24

(48)

Construction

1. Modify the rules in  so that if       then  

2. Starting with  and proceeding to  this is done as follows:

(a) Assume that productions have been modified so that for

 

,       only if  

(b) If      is a production with   , generate a new set of productions substituting for the  the rhs of each 

production

(c) Repeating (b) at most    times we obtain rules of the form

    

,    (d) Replace rules

     

by removing left-recursive rules

(49)

Construction

1. Modify the rules in  so that if       then  

2. Starting with  and proceeding to  this is done as follows:

(a) Assume that productions have been modified so that for

 

,       only if  

(b) If      is a production with   , generate a new set of productions substituting for the  the rhs of each 

production

(c) Repeating (b) at most    times we obtain rules of the form

    

,    (d) Replace rules

     

by removing left-recursive rules

Chomsky and Greibach Normal Forms– p.19/24

(50)

Removing left-recursion

Left-recursion can be eliminated by the following scheme:

If

            are all



left recursive rules, and

           

are all remaining -rules then chose a new nonterminal, say 

Add the new -rules   

  

,  Replace the -rules by    

   

,  

This construction preserve the language .

(51)

Removing left-recursion

Left-recursion can be eliminated by the following scheme:

If

            are all



left recursive rules, and

           

are all remaining -rules then chose a new nonterminal, say 

Add the new -rules   

  

,  Replace the -rules by    

   

,  

This construction preserve the language .

Chomsky and Greibach Normal Forms– p.20/24

(52)

Removing left-recursion

Left-recursion can be eliminated by the following scheme:

If

            are all



left recursive rules, and

           

are all remaining -rules then chose a new nonterminal, say 

Add the new -rules   

  

,  Replace the -rules by    

   

,  

This construction preserve the language .

(53)

21-1

(54)

More on Greibach NF

See Introduction to Automata Theory, Languages,

and Computation, J.E, Hopcroft and J.D Ullman,

Addison-Wesley 1979, p. 94–96

(55)

Example

Convert the CFG

  

  

  





  

 

 

where



     

       

        

into Greibach normal form.

Chomsky and Greibach Normal Forms– p.23/24

(56)

Example

Convert the CFG

  

  

  





  

 

 

where



     

       

        

into Greibach normal form.

(57)

Example

Convert the CFG

  

  

  





  

 

 

where



     

       

        

into Greibach normal form.

Chomsky and Greibach Normal Forms– p.23/24

(58)

Solution

1. Step 1: ordering the rules: (Only  rules violate ordering conditions, hence only  rules need to be changed).

Following the procedure we replace



rules by:

             

2. Eliminating left-recursion we get:       

        

,

           

3. All  rules start with a terminal. We use them to replace

    

. This introduces the rules      

     

4. Use  production to make them start with a terminal

(59)

Solution

1. Step 1: ordering the rules: (Only  rules violate ordering conditions, hence only  rules need to be changed).

Following the procedure we replace



rules by:

             

2. Eliminating left-recursion we get:       

        

,

           

3. All  rules start with a terminal. We use them to replace

    

. This introduces the rules      

     

4. Use  production to make them start with a terminal

Chomsky and Greibach Normal Forms– p.24/24

(60)

Solution

1. Step 1: ordering the rules: (Only  rules violate ordering conditions, hence only  rules need to be changed).

Following the procedure we replace



rules by:

             

2. Eliminating left-recursion we get:       

        

,

           

3. All  rules start with a terminal. We use them to replace

    

. This introduces the rules      

     

4. Use  production to make them start with a terminal

Cytaty

Powiązane dokumenty

So we’ve just shown that – given our original assumptions – there is a computable total function d which isn’t µ-recursive, contradicting Church’s Thesis!. Hence, if we do

So if the tape contents is abrakadabra, with machine scanning the letter d (at position 6) in state q, we represent it as the quadruple hakarba, q, dabra,

Math 3CI Even More about solving DiffyQ Symbolicallly Part IV In these problems you are pushed to develop some more symbolic tech- niques for solving ODE’s that extends the

This paper deals with a weak convergence of maximum vectors built on the base of stationary and normal sequences of relatively strongly dependent random vectors.. The

We show for instance that the set of polynomial integrable Hamiltonian systems (of fixed degree) tangent to a rotation and such that the frequencies do not depend on the

Therefore, at the simple zeros of ∆, the polarization space is one-dimensional and, modulo elliptic factors, the analysis can be reduced to considering a scalar operator with

2 Sunny Hot High Strong No 3 Overcast Hot High Weak Yes 4 Rain Mild High Weak Yes 5 Rain Cold Normal Weak Yes 6 Rain Cold Normal Strong No 7 Overcast Cold Normal Strong Yes 8 Sunny

We present two alternative yet equivalent weak formulations of the problem, and establish existence and uniqueness results for both formulations using arguments of elliptic