Greibach normal form

In formal language theory, a context-free grammar is in Greibach normal form (GNF) if the right-hand sides of all production rules start with a terminal symbol, optionally followed by some variables. A non-strict form allows one exception to this format restriction for allowing the empty word (epsilon, ε) to be a member of the described language. The normal form was established by Sheila Greibach and it bears her name.

More precisely, a context-free grammar is in Greibach normal form, if all production rules are of the form:

A \to a A_1 A_2 \cdots A_n

or

S \to \varepsilon

where A is a nonterminal symbol, a is a terminal symbol, A_1 A_2 \ldots A_n is a (possibly empty) sequence of nonterminal symbols not including the start symbol, S is the start symbol, and ε is the empty word.[1]

Observe that the grammar does not have left recursions.

Every context-free grammar can be transformed into an equivalent grammar in Greibach normal form.[2] Various constructions exist. Some do not permit the second form of rule and cannot transform context-free grammars that can generate the empty word. For one such construction the size of the constructed grammar is O(n4) in the general case and O(n3) if no derivation of the original grammar consists of a single nonterminal symbol, where n is the size of the original grammar.[3] This conversion can be used to prove that every context-free language can be accepted by a real-time pushdown automaton, i.e., the automaton reads a letter from its input every step.

Given a grammar in GNF and a derivable string in the grammar with length n, any top-down parser will halt at depth n.

See also

References

  1. Hopcroft, John E.; Ullman, Jeffrey D. (1979). Introduction to Automata Theory, Languages and Computation. Reading, Massachusetts: Addison-Wesley Publishing. p. 95. ISBN 0-201-02988-X.
  2. Greibach, Sheila (January 1965). "A New Normal-Form Theorem for Context-Free Phrase Structure Grammars". Journal of the ACM 12 (1). doi:10.1145/321250.321254.
  3. Blum, Norbert; Koch, Robert (1999). "Greibach Normal Form Transformation Revisited". Information and Computation 150 (1): 112–118. doi:10.1006/inco.1998.2772. CiteSeerX: 10.1.1.47.460.
This article is issued from Wikipedia - version of the Sunday, October 18, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.