Prefix grammar

From Wikipedia, the free encyclopedia

In computer science, a prefix grammar is a grammar, akin to the formal grammars, where strings are built up from a set of base strings by continually replacing prefixes. The prefix grammars describe exactly all regular languages.

Contents

[edit] Formal definition

A prefix grammar G is a 3-tuple, (Σ, S, P), where

  • Σ is a finite alphabet
  • S is a finite set of base strings over Σ
  • P is a set of production rules of the form uv where u and v are strings over Σ

Each production uv can only be applied to a string of the form uw.

[edit] Example

One simple prefix grammar can be defined by

  • Σ = {0, 1}
  • S = {01, 10}
  • P = {0 → 010, 10 → 100}

which describes the language defined by the regular expression

 01(01)^* \cup 100^*

[edit] Properties

Prefix grammars generate languages that are prefix closed.

[edit] See also

Languages