Simplifications of ContextFree Grammars 10252020 Dr Sandip Mal































- Slides: 31
Simplifications of Context-Free Grammars 10/25/2020 Dr. Sandip Mal 1
10/25/2020 Dr. Sandip Mal 2
Useless Productions Useless Production Some derivations never terminate. . . 10/25/2020 Dr. Sandip Mal 3
Another grammar: Useless Production Not reachable from S 10/25/2020 Dr. Sandip Mal 4
Nullable Variables Nullable Variable: Example: Nullable variable 10/25/2020 Dr. Sandip Mal 5
Unit-Productions Unit Production: (a single variable in both sides) Example: Unit Productions 10/25/2020 Dr. Sandip Mal 6
10/25/2020 Dr. Sandip Mal 7
10/25/2020 Dr. Sandip Mal 8
10/25/2020 Dr. Sandip Mal 9
10/25/2020 Dr. Sandip Mal 10
10/25/2020 Dr. Sandip Mal 11
10/25/2020 Dr. Sandip Mal 12
10/25/2020 Dr. Sandip Mal 13
10/25/2020 Dr. Sandip Mal 14
Normal Forms for Context-free Grammars 10/25/2020 Dr. Sandip Mal 15
Chomsky Normal Form Each productions has form: or variable 10/25/2020 variable Dr. Sandip Mal terminal 16
Examples: Chomsky Normal Form 10/25/2020 Not Chomsky Normal Form Dr. Sandip Mal 17
Conversion to Chomsky Normal Form Example: Not Chomsky Normal Form We will convert it to Chomsky Normal Form 10/25/2020 Dr. Sandip Mal 18
Introduce new variables for the terminals: 10/25/2020 Dr. Sandip Mal 19
Introduce new intermediate variable to break first production: 10/25/2020 Dr. Sandip Mal 20
Introduce intermediate variable: 10/25/2020 Dr. Sandip Mal 21
Final grammar in Chomsky Normal Form: Initial grammar 10/25/2020 Dr. Sandip Mal 22
In general: From any context-free grammar (which doesn’t produce ) not in Chomsky Normal Form we can obtain: an equivalent grammar in Chomsky Normal Form 10/25/2020 Dr. Sandip Mal 23
The Procedure First remove: Nullable variables Unit productions (Useless variables optional) 10/25/2020 Dr. Sandip Mal 24
Then, for every symbol : New variable: Add production In productions with length at least 2 replace with Productions of form do not need to change! 10/25/2020 Dr. Sandip Mal 25
Replace any production with New intermediate variables: 10/25/2020 Dr. Sandip Mal 26
Observations • Chomsky normal forms are good for parsing and proving theorems • It is easy to find the Chomsky normal form for any context-free grammar 10/25/2020 Dr. Sandip Mal 27
Greinbach Normal Form All productions have form: symbol 10/25/2020 variables Dr. Sandip Mal 28
Examples: Greinbach Normal Form 10/25/2020 Not Greinbach Normal Form Dr. Sandip Mal 29
Conversion to Greinbach Normal Form: Greinbach Normal Form 10/25/2020 Dr. Sandip Mal 30
Observations • Greinbach normal forms are very good for parsing strings (better than Chomsky Normal Forms) • However, it is difficult to find the Greinbach normal of a grammar 10/25/2020 Dr. Sandip Mal 31