Linguaggi context-free

Una grammatica non contestuale (o CFG) è una quadrupla , dove:

  1. è l'insieme finito dei non-terminali (o variabili)
  2. è l'insieme finito di terminali, per cui
  3. è l'insieme finito di regole della forma , dove e
  4. è lo start symbol

Dati e , si dice produce la relazione e si dice deriva la relazione se o esiste una sequenza con tale che .

Inoltre, un linguaggio è context-free se esiste una CFG tale che .

Per esempio, con si ottiene e per esempio perchè , che si può rappresentare con un parse tree:

la cui frontiera rappresenta la stringa generata.