Grammars Costas Busch RPI 1 Grammars express languages
Grammars Costas Busch - RPI 1
Grammars express languages Example: the English language Costas Busch - RPI 2
Costas Busch - RPI 3
A derivation of “the dog walks”: Costas Busch - RPI 4
A derivation of “a cat runs”: Costas Busch - RPI 5
Language of the grammar: L = { “a cat runs”, “a cat walks”, “the cat runs”, “the cat walks”, “a dog runs”, “a dog walks”, “the dog runs”, “the dog walks” } Costas Busch - RPI 6
Notation Production Rules Variable Terminal Costas Busch - RPI 7
Another Example Grammar: Derivation of sentence Costas Busch - RPI : 8
Grammar: Derivation of sentence Costas Busch - RPI : 9
Other derivations: Costas Busch - RPI 10
Language of the grammar Costas Busch - RPI 11
More Notation Grammar Set of variables Set of terminal symbols Start variable Set of Production rules Costas Busch - RPI 12
Example Grammar : Costas Busch - RPI 13
More Notation Sentential Form: A sentence that contains variables and terminals Example: Sentential Forms Costas Busch - RPI sentence 14
We write: Instead of: Costas Busch - RPI 15
In general we write: If: Costas Busch - RPI 16
By default: Costas Busch - RPI 17
Example Grammar Derivations Costas Busch - RPI 18
Example Grammar Derivations Costas Busch - RPI 19
Another Grammar Example Grammar : Derivations: Costas Busch - RPI 20
More Derivations Costas Busch - RPI 21
Language of a Grammar For a grammar with start variable : String of terminals Costas Busch - RPI 22
Example For grammar : Since: Costas Busch - RPI 23
A Convenient Notation Costas Busch - RPI 24
Linear Grammars Costas Busch - RPI 25
Linear Grammars with at most one variable at the right side of a production Examples: Costas Busch - RPI 26
A Non-Linear Grammar Number of : in string Costas Busch - RPI 27
Another Linear Grammar : Costas Busch - RPI 28
Right-Linear Grammars All productions have form: or Example: string of terminals Costas Busch - RPI 29
Left-Linear Grammars All productions have form: or Example: string of terminals Costas Busch - RPI 30
Regular Grammars Costas Busch - RPI 31
Regular Grammars A regular grammar is any right-linear or left-linear grammar Examples: Costas Busch - RPI 32
Observation Regular grammars generate regular languages Examples: Costas Busch - RPI 33
Regular Grammars Generate Regular Languages Costas Busch - RPI 34
Theorem Languages Generated by Regular Grammars Costas Busch - RPI Regular Languages 35
Theorem - Part 1 Languages Generated by Regular Grammars Regular Languages Any regular grammar generates a regular language Costas Busch - RPI 36
Theorem - Part 2 Languages Generated by Regular Grammars Regular Languages Any regular language is generated by a regular grammar Costas Busch - RPI 37
Proof – Part 1 Languages Generated by Regular Grammars Regular Languages The language generated by any regular grammar is regular Costas Busch - RPI 38
The case of Right-Linear Grammars Let be a right-linear grammar We will prove: Proof idea: is regular We will construct NFA with Costas Busch - RPI 39
Grammar is right-linear Example: Costas Busch - RPI 40
Construct NFA such that every state is a grammar variable: special final state Costas Busch - RPI 41
Add edges for each production: Costas Busch - RPI 42
Costas Busch - RPI 43
Costas Busch - RPI 44
Costas Busch - RPI 45
Costas Busch - RPI 46
Costas Busch - RPI 47
NFA Grammar Costas Busch - RPI 48
In General A right-linear grammar has variables: and productions: or Costas Busch - RPI 49
We construct the NFA each variable such that: corresponds to a node: special final state Costas Busch - RPI 50
For each production: we add transitions and intermediate nodes ……… Costas Busch - RPI 51
For each production: we add transitions and intermediate nodes ……… Costas Busch - RPI 52
Resulting NFA looks like this: It holds that: Costas Busch - RPI 53
The case of Left-Linear Grammars Let be a left-linear grammar We will prove: is regular Proof idea: We will construct a right-linear grammar with Costas Busch - RPI 54
Since is left-linear grammar the productions look like: Costas Busch - RPI 55
Construct right-linear grammar Left linear Right linear Costas Busch - RPI 56
Construct right-linear grammar Left linear Right linear Costas Busch - RPI 57
It is easy to see that: Since Regular Language is right-linear, we have: Regular Language Costas Busch - RPI Regular Language 58
Proof - Part 2 Languages Generated by Regular Grammars Regular Languages Any regular language is generated by some regular grammar Costas Busch - RPI 59
Any regular language is generated by some regular grammar Proof idea: Let be the NFA with Construct from such that . a regular grammar Costas Busch - RPI 60
Since is regular there is an NFA such that Example: Costas Busch - RPI 61
Convert to a right-linear grammar Costas Busch - RPI 62
Costas Busch - RPI 63
Costas Busch - RPI 64
Costas Busch - RPI 65
In General For any transition: Add production: variable Costas Busch - RPI terminal variable 66
For any final state: Add production: Costas Busch - RPI 67
Since is right-linear grammar is also a regular grammar with Costas Busch - RPI 68
- Slides: 68