Regular Grammars

110 Views

Download Presentation
## Regular Grammars

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Regular Grammars**Lecture 11 Naveen Z Quazilbash**Overview**• Examples • Definition • Language defined by the grammar • Linearity of grammar • Equivalence with NFAs**Examples**• Example 1: S aAb AcA Aε • The corresponding language is ac*b • Example 2: S aA AbB BaA Bε • The corresponding language is (ab)+ S=>aAb=>acAb=>accAb=>accb S=>aAb=>ab S=>aA=>abB=>ab S=>aA=>abB=>abaA=>ababB=>abab**Some Definitions**• The substitution rules that form a grammar are called “Productions”. • The left side of a rule is a “variable”. • The right side is a mixture of variables and symbols of the alphabet (a.k.a “Terminal symbols”).**Some Definitions Contd. (2)**• A grammar defines the language of all strings that can be derived from the “Start variable, S”, by successive applications of productions. • Note that the strings of this language do not contain variables.**Some Definitions Contd. (3)**• A sequence of substitutions that leads from S to some string of the language is called a “Derivation”. • Example: • S=>aA=>abB=>ab is a derivation; we may write it in a shorter form as S=>*ab, • where “=>*” means “several steps”.**Formal Definition of Grammar**• Formally, a grammar is a four tuple: G= {V, T, S, P}, where • V= set of variables, e.g. V={S, A, B} • T= set of terminal symbols, e.g. T={a, b} • S= start variable (analogous to the start state in automaton). • P= set of productions, e.g. P={SaA, AbB, BaA, Bε} • Note that V and T must be non-empty and disjoint.**Language defined by the Grammar**• The set of all strings derivable from S is the “language defined (or generated) by the grammar”.**Linearity of Grammar**• A Grammar is “Linear” if all productions are of the form Aw1Bw2 or Aw3, where A and B are variables and w1,w2 and w3 are strings (with no variables in them). • Example of a linear grammar: SaB Sε BSb • Shorter notation: Sab | ε • Language: L={anbn: n≥0}, (not a regular language) • Thus, a linear grammar may generate a language that is not accepted by any finite automaton. S=>ε S=>aB=>aSb=>ab S=>aB=>aSb=>aaBb=>aaSbb=>aabb**Linearity of Grammar-Contd..**• Right linear grammar: VT*V VT* • Left linear grammar: VVT* VT***ASSIGNMENT NO.2**• For each of the following three languages on ∑={a,b}, draw a DFA that accepts it: (6 points) • All strings that have no b’s (note that it includes ε). • All strings with atleast two a’s and any number of b’s. • All strings with atmost two a’s and any number of b’s. • Due Date: 28th March 2013.