1 / 11

Regular Grammars

Regular grammars are defined as quadruples G = (V, T, P, S), where V is a finite set of variables, T is a finite set of terminals, P is a finite set of production rules, and S is the start symbol. This guide provides clear examples of regular grammars, demonstrating how to derive strings using productions, showcasing tree derivations, and explaining the connection between non-deterministic finite automata (NFA) and regular grammars. Discover how non-terminals and terminals are utilized in various grammatical forms and the significance of the start symbol.

kevork
Télécharger la présentation

Regular Grammars

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Regular Grammars

  2. Definition • A Regular Grammar is a quadruple G= (V,T,P,S), where • V is a finite set of variables (nonterminals,syntactic categories) • T is a finite set of terminals (alphabet) • P is a finite set of productions : rules of the forms • V -> L (l) • V -> w (b) • V -> V (g rules) • V -> w V (d rules) where wÎT* • S, the start symbol, is an element of V

  3. Example 1 Non-terminals = [S,B] Terminals = [a,b] Start = S S -> S -> a S S -> B B -> b B -> b B

  4. Example 2 Non-terminals = [S,C] Terminals = [a,b,c] Start = S S -> a S S -> b C C -> C -> c C

  5. Example 3 Non-terminals = [A,B,C] Terminals = [a,b] Start = A A -> a A A -> a C A -> b B B -> a B C -> b B B ->

  6. Derivation • We say a grammar derives a string if • Start with any rule whose LHS is the start symbol. Write down the RHS. • Repeatedly, replace any Non-terminal, X, in the written down term, with rhs, where (X -> rhs) is one of the productions. • When there are no more Non-terminals, written down term is the derived string.

  7. Example Non-terminals = [S,C] Terminals = [a,b,c] Start = S S -> a S S -> b C C -> C -> c C • Rule • S -> a S • S -> a S • S -> b C • C -> c C • C -> c C • C -> • Right-Hand-Side • a S • a a S • a a b C • a a b c C • a a b c cC • a a b c c

  8. Tree Derivation S Non-terminals = [S,C] Terminals = [a,b,c] Start = S S -> a S S -> b C C -> C -> c C a S a S Derived string aabcc b C c C c C

  9. NFA to RegGram Non-terminals = [S0,S1,S2] Terminals = [a,b] Start = S0 S0 -> a S1 S0 -> b S2 S1 -> a S1 S1 -> b S1 S2 -> a S2 S2 -> b S2 S1 -> For every transition I –a-> J Add a production SI -> a SJ For every transition I -L-> J Add a production Si -> Sj For every final state K Add a production Sk->

  10. RegGram to GenNFA • The non-terminal become the states, but also invent a new final state F • For each kind of prod • V -> L (l) • V -> w (b) • V -> V (g rules) • V -> w V (d rules) • Add a transition • I -> L add I –L-> F • I -> w add I –w-> F • I -> w J add I –w-> J • I -> J add I –L-> J Terminals = [a,b,c,d] Start = S0 S0 -> a b S0 S0 -> c d S1 S1 -> S1 -> c S1

  11. Simplify GenNFA

More Related