A long-standing issue regarding algorithms that manipulate context-free grammars (CFGs) in a "top-down" leftto-right fashion is that left recursion can lead to nontermination. An algorithm is known that transforms any CFG into an equivalent non-left-recursive CFG, but the resulting grammars are often too large for practical use. We present a new method for removing left recursion from CFGs that is both theoretically superior to the standard algorithm, and produces very compact non-leftrecursive CFGs in practice.
Robert C. Moore