Una gramática de dos niveles es una gramática formal que se utiliza para generar otra gramática formal, como una con un conjunto infinito de reglas. Así es como se utilizó la gramática de van Wiingaarden para definir el lenguaje Algol-68 . Una gramática independiente del contexto que define reglas para otra gramática puede dar lugar a un conjunto esencialmente infinito de reglas gramaticales derivadas. Esto hace que las gramáticas de dos niveles sean más poderosas que las gramáticas libres de contexto de un solo nivel, ya que se ha demostrado que las gramáticas generativas de dos niveles son completas de Turing. [una]
Una gramática de dos niveles también se puede denominar una gramática formal para un lenguaje formal de dos niveles, es decir, un lenguaje definido en dos niveles, como un nivel de palabra y un nivel de oración.
Un lenguaje bien conocido que no está libre de contexto es
La gramática de dos niveles puede ser la metagramática
N ::= 1 | N1 X ::= un | segundo | Cjunto con la gramática
Inicio ::= ::= ::= X