Generalized context-free grammar (GCFG) is a grammar formalism that expands on context-free grammars by adding potentially non-context-free composition functions to rewrite rules.
[1] Head grammar (and its weak equivalents) is an instance of such a GCFG which is known to be especially adept at handling a wide variety of non-CF properties of natural language.
A GCFG consists of two components: a set of composition functions that combine string tuples, and a set of rewrite rules.
The composition functions all have the form
is either a single string tuple, or some use of a (potentially different) composition function which reduces to a string tuple.
Rewrite rules look like
, ... are string tuples or non-terminal symbols.
The rewrite semantics of GCFGs is fairly straightforward.
An occurrence of a non-terminal symbol is rewritten using rewrite rules as in a context-free grammar, eventually yielding just compositions (composition functions applied to string tuples or other compositions).
The composition functions are then applied, successively reducing the tuples to a single tuple.
A simple translation of a context-free grammar into a GCFG can be performed in the following fashion.
Given the grammar in (1), which generates the palindrome language
, we can define the composition function conc as in (2a) and the rewrite rules as in (2b).
The CF production of abbbba is and the corresponding GCFG production is Weir (1988)[1] describes two properties of composition functions, linearity and regularity.
is linear if and only if each variable appears at most once on either side of the =, making
is regular if the left hand side and right hand side have exactly the same variables, making
A grammar in which all composition functions are both linear and regular is called a Linear Context-free Rewriting System (LCFRS).
LCFRS is a proper subclass of the GCFGs, i.e. it has strictly less computational power than the GCFGs as a whole.
On the other hand, LCFRSs are strictly more expressive than linear-indexed grammars and their weakly equivalent variant tree adjoining grammars (TAGs).
[2] Head grammar is another example of an LCFRS that is strictly less powerful than the class of LCFRSs as a whole.
LCFRS are weakly equivalent to (set-local) multicomponent TAGs (MCTAGs) and also with multiple context-free grammar (MCFGs [1]).
[3] and minimalist grammars (MGs).
The languages generated by LCFRS (and their weakly equivalents) can be parsed in polynomial time.