120 likes | 264 Views
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 A bB BaA B ε
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.