Une grammaire générale est un quadruplet:
G=\left(V, \Sigma, R, S\right)
V = ensemble de symboles
\Sigma \subset V : ensemble de symboles terminaux
\left( V \setminus \Sigma \right) : ensemble des symboles non-terminaux
s \in\left( V \setminus \Sigma \right) : start symbole
R : ensemble des règles, sous-ensemble fini de V^* \left(V\setminus\Sigma\right)V^* \times V^* où V^* \left(V\setminus\Sigma\right) contient au moins 1 symbole non-terminal
\left(u,v\right)\in R se note u\rightarrow_R v
u \Rightarrow_{R\;ou\;G} v : passage au contexte
u \Rightarrow_G v \Leftrightarrow \exists \omega ,\omega \prime \in V^* t.q.
\Rightarrow^* : fermeture réflexive-transitive de \Rightarrow :
\omega_0 \Rightarrow \omega_1 \Rightarrow \ldots \Rightarrow \omega_n : dérivation de longueur n
\left(V \setminus \Sigma\right)\rightarrow\left(V \setminus \Sigma\right) V^* ou \Sigma^*