En muchos artículos que involucran gramáticas libres de contexto (CFG), los ejemplos de tales gramáticas presentados allí a menudo admiten caracterizaciones fáciles del lenguaje que generan. Por ejemplo:
genera ,
genera , y
genera , o equivalente (donde refiere a la parte capturada por ).
Todos los ejemplos anteriores se pueden generar agregando índices ( ), restricciones simples en estos índices ( ) y coincidencia de patrones con expresiones regulares. Esto me hace preguntarme si todos los lenguajes libres de contexto pueden ser generados por alguna extensión de las expresiones regulares.
¿Existe una extensión de expresiones regulares que pueda generar todos o algunos subconjuntos significativos de los lenguajes libres de contexto?
fuente
Respuestas:
Sí hay. Defina una expresión sin contexto como un término generado por la siguiente gramática:
Estos son todos los constructores para lenguajes regulares, excepto la estrella de Kleene, que se reemplaza por un operador general de punto fijo , y un mecanismo de referencia variable. (La estrella de Kleene no es necesaria, ya que se puede definir como g ∗ ≜ μ α .μα.g .)g∗≜μα.ϵ∨g⋅α
La interpretación de una expresión libre de contexto requiere tener en cuenta la interpretación de las variables libres. Por lo tanto, defina un entorno como un mapa de variables a idiomas (es decir, subconjuntos de ), y deje que sea la función que se comporta como en todas las entradas excepto , y que devuelve el idioma para .Σ ∗ [ ρ | α : L ] ρ α L αρ Σ∗ [ρ|α:L] ρ α L α
Ahora, defina la interpretación de una expresión sin contexto de la siguiente manera:
Usando el teorema de Knaster-Tarski, es fácil ver que la interpretación de es la menos fija de la expresión.μα.g
Es sencillo (aunque no del todo trivial) mostrar que puede dar una expresión sin contexto derivando el mismo lenguaje que cualquier gramática libre de contexto, y viceversa. La no trivialidad surge del hecho de que las expresiones sin contexto tienen puntos fijos anidados, y las gramáticas sin contexto le dan un solo punto fijo sobre una tupla. Esto requiere el uso del lema de Bekic, que dice precisamente que un punto fijo anidado se puede convertir en un único punto fijo sobre un producto (y viceversa). Pero esa es la única sutileza.
EDITAR: No, no conozco una referencia estándar para esto: lo resolví por mi propio interés. Sin embargo, es una construcción bastante obvia que estoy seguro de que se ha inventado antes. Algunos buscadores casuales en Google revelan el reciente documento de Context-Free Languages, Coalgebraically de Joost Winter, Marcello Bonsangue y Jan Rutten , donde dan una variante de esta definición (que requiere que todos los puntos fijos estén protegidos) que también llaman expresiones libres de contexto.
fuente
Hubo una pregunta estrechamente relacionada (y varias respuestas) en MathOverflow sobre los lenguajes cuyas funciones generadoras son holonómicas .
Curiosamente, la definición de Neel de la semántica de anterior corresponde exactamente a la prueba (constructiva) de la existencia de soluciones de especies para ecuaciones de especies recursivas a través del teorema de especies implícito. Desafortunadamente, su esquema de prueba también debe contener un error sutil, ya que hay casos en que las cosas se vuelven 'infinitas'. En otras palabras, hay una condición en el jacobiano de la transformación definida por la gramática como no singular que se necesita. Esta es probablemente la razón por la cual Bonsangue-Rutten requiere que los puntos fijos estén protegidos, como una forma de asegurar esta condición en el jacobiano.μ
fuente
Recientemente hemos publicado los esquemas de un marco que hará exactamente eso. Mira en comp.compilers , donde envié una notificación junto con algunos enlaces.
Los nuevos desarrollos se basan en el Teorema de Chomsky-Schuetzenberger y pueden considerarse como la finalización de este resultado. Chomsky, él mismo, ha sido informado de los acontecimientos e indica un deseo de "ponerse al día".
Junto con este desarrollo, también establecemos la equivalencia de dos formulaciones separadas para expresiones libres de contexto, una que es una extensión / finalización de la forma de cálculo mu de "punto menos fijo" (originalmente por Gruska, Yntema y McWhirter) - que recibió una especie de formulación final en 2014, y la otra publicada en 2008.
fuente