Hace poco me preguntaba qué pasaría si permitiéramos que las gramáticas sin contexto tengan un número infinito de reglas. Claramente, si permitiéramos arbitrariamente tales conjuntos infinitos de reglas, cada lenguaje sobre algún alfabeto Σ podría describirse mediante un CFG G = ( { S } , Σ , R , S ) con R = { S → w ∣ w ∈ L } . Pero, ¿qué pasa si restringimos R a tales conjuntos de reglas que pueden ser creadas por gramáticas libres de contexto?
Para ese propósito, dado un conjunto de no terminales y terminales Σ , veamos las reglas no como elementos de N × ( N ∪ Σ ) ∗ , sino como cadenas sobre el alfabeto R ( N , Σ ) = N ∪ Σ ∪ { → → } . Ahora mi pregunta es, si definimos una regla infinita CFG como una tupla G = ( N , Σ , R , S ) donde
- es un conjunto finito de no terminales
- es un alfabeto finito
- es un conjunto de reglas de la forma A → w con A ∈ N , w ∈ ( N ∪ Σ ) ∗ de tal manera que hay algo de CFG G ' sobre R ( N , Σ ) con R = L ( G ′ )
- es el no terminal inicial
y definimos para tales CFGs de reglas infinitas tal como se hace para CFGs, ¿cuál es la relación entre la clase de lenguajes generados por los CFGs de reglas infinitas (llamemos a esa clase i r C F ), la clase de contexto? idiomas libres C F y la clase R E ?
Obviamente, tenemos , pero ¿es i r C F equivalente a una de estas clases (o alguna otra clase)?
fuente
Respuestas:
Si el esquema de prueba anterior es válido, e son iguales.CF irCF
Como mencioné en un comentario, hay ejemplos más interesantes de gramáticas de dos niveles, incluidas las gramáticas Van Wijngaarden y los diversos intentos que se han hecho para crear formalismos más manejables sin perder todo el poder adicional.
fuente