Costas Busch - RPI1 Grammars
Costas Busch - RPI2 Grammars Grammars express languages Example: the English language
Costas Busch - RPI3
4 A derivation of “the dog walks”:
Costas Busch - RPI5 A derivation of “a cat runs”:
Costas Busch - RPI6 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 - RPI7 Notation VariableTerminal Production Rules
Costas Busch - RPI8 Another Example Grammar: Derivation of sentence :
Costas Busch - RPI9 Grammar: Derivation of sentence :
Costas Busch - RPI10 Other derivations:
Costas Busch - RPI11 Language of the grammar
Costas Busch - RPI12 More Notation Grammar Set of variables Set of terminal symbols Start variable Set of Production rules
Costas Busch - RPI13 Example Grammar :
Costas Busch - RPI14 More Notation Sentential Form: A sentence that contains variables and terminals Example: Sentential Formssentence
Costas Busch - RPI15 We write: Instead of:
Costas Busch - RPI16 In general we write: If:
Costas Busch - RPI17 By default:
Costas Busch - RPI18 Example Grammar Derivations
Costas Busch - RPI19 Grammar Example Derivations
Costas Busch - RPI20 Another Grammar Example Grammar : Derivations:
Costas Busch - RPI21 More Derivations
Costas Busch - RPI22 Language of a Grammar For a grammar with start variable : String of terminals
Costas Busch - RPI23 Example For grammar : Since:
Costas Busch - RPI24 A Convenient Notation
Costas Busch - RPI25 Linear Grammars
Costas Busch - RPI26 Linear Grammars Grammars with at most one variable at the right side of a production Examples:
Costas Busch - RPI27 A Non-Linear Grammar Grammar : Number of in string
Costas Busch - RPI28 Another Linear Grammar Grammar :
Costas Busch - RPI29 Right-Linear Grammars All productions have form: Example: or string of terminals
Costas Busch - RPI30 Left-Linear Grammars All productions have form: Example: or string of terminals
Costas Busch - RPI31 Regular Grammars
Costas Busch - RPI32 Regular Grammars A regular grammar is any right-linear or left-linear grammar Examples:
Costas Busch - RPI33 Observation Regular grammars generate regular languages Examples:
Costas Busch - RPI34 Regular Grammars Generate Regular Languages
Costas Busch - RPI35 Theorem Languages Generated by Regular Grammars Regular Languages
Costas Busch - RPI36 Theorem - Part 1 Languages Generated by Regular Grammars Regular Languages Any regular grammar generates a regular language
Costas Busch - RPI37 Theorem - Part 2 Languages Generated by Regular Grammars Regular Languages Any regular language is generated by a regular grammar
Costas Busch - RPI38 Proof – Part 1 Languages Generated by Regular Grammars Regular Languages The language generated by any regular grammar is regular
Costas Busch - RPI39 The case of Right-Linear Grammars Let be a right-linear grammar We will prove: is regular Proof idea: We will construct NFA with
Costas Busch - RPI40 Grammar is right-linear Example:
Costas Busch - RPI41 Construct NFA such that every state is a grammar variable: special final state
Costas Busch - RPI42 Add edges for each production:
Costas Busch - RPI43
Costas Busch - RPI44
Costas Busch - RPI45
Costas Busch - RPI46
Costas Busch - RPI47
Costas Busch - RPI48 Grammar NFA
Costas Busch - RPI49 In General A right-linear grammar has variables: and productions: or
Costas Busch - RPI50 We construct the NFA such that: each variable corresponds to a node: special final state
Costas Busch - RPI51 For each production: we add transitions and intermediate nodes ………
Costas Busch - RPI52 For each production: we add transitions and intermediate nodes ………
Costas Busch - RPI53 Resulting NFA looks like this: It holds that:
Costas Busch - RPI54 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 - RPI55 Since is left-linear grammar the productions look like:
Costas Busch - RPI56 Construct right-linear grammar Left linear Right linear
Costas Busch - RPI57 Construct right-linear grammar Left linear Right linear
Costas Busch - RPI58 It is easy to see that: Since is right-linear, we have: Regular Language Regular Language Regular Language
Costas Busch - RPI59 Proof - Part 2 Languages Generated by Regular Grammars Regular Languages Any regular language is generated by some regular grammar
Costas Busch - RPI60 Proof idea: Let be the NFA with. Construct from a regular grammar such that Any regular language is generated by some regular grammar
Costas Busch - RPI61 Since is regular there is an NFA such that Example:
Costas Busch - RPI62 Convert to a right-linear grammar
Costas Busch - RPI63
Costas Busch - RPI64
Costas Busch - RPI65
Costas Busch - RPI66 In General For any transition: Add production: variableterminalvariable
Costas Busch - RPI67 For any final state: Add production:
Costas Busch - RPI68 Since is right-linear grammar is also a regular grammar with