¿Qué buenas notaciones existen para los lenguajes deterministas libres de contexto y visiblemente pushdown?

10

Los lenguajes deterministas sin contexto (DCFL) y los lenguajes visiblemente pushdown (VPL) son ambos conjuntos de lenguajes formales entre lenguajes sin contexto (CFL) e idiomas regulares (REG). ¿Existe una notación legible que se pueda expresar en ASCII simple como Backus-Naur-Form para CFL y expresiones regulares para REG?

Jakob
fuente
1
Puede ser útil aclarar el significado de "bueno" en el título de la pregunta. ¿Qué tiene de malo usar BNF para describir un DCFL?
Tsuyoshi Ito
1
Por bueno quiero decir que debería ser fácil de leer y escribir para los seres humanos, por lo que debería basarse en ASCII. BNF es excelente: las expresiones regulares son un subconjunto compacto de BNF. Pero, ¿qué subconjunto de BNF define DCFL y cuál define VPL?
Jakob

Respuestas:

5

q,z,aq,γq,qQzγaun símbolo de entrada o la cadena vacía. La notación en sí misma no impone el determinismo, pero se verifica fácilmente. Usando un tipo de notación de gramática libre de contexto (como BNF), se encontrará con problemas, ya que los DCFL son una subclase adecuada de CFL y, como lo señala DaniCL, no puede decidir en general dado un CFG si su lenguaje es determinista.

AaαbAabα

ab

Sylvain
fuente
¡Gracias! Con respecto a DCFL, creo que esta es una dirección correcta. Una sintaxis concreta tendría algunas abreviaturas útiles para subconjuntos que se analizan mediante expresiones regulares. Con respecto a los VPL, aún no estoy seguro, porque un VLP puede tener llamadas colgantes y símbolos de retorno en contraste con modelos de árbol como XML. Puede compararlo mejor con una subsecuencia arbitraria de eventos SAX de un árbol XML arbitrario. Dudo que RelaxNG pueda describir esto.
Jakob
La observación Usando ... es determinista. no viene al caso: no dice nada acerca de si hay una subclase de CFG que obviamente describe todos los DCFL y nada más. Tales como las gramáticas LR (k).
reinierpost
@reinerpost: cierto, pero (en mi defensa) no consideraría las gramáticas LR (1) para proporcionar una notación sintáctica , porque uno necesita verificar la condición LR (1).
Sylvain
3

Para encontrar una representación canónica, considere lo siguiente: la clase de DCFL es equivalente a la clase de lenguajes generados por las gramáticas LR (k), que nuevamente es equivalente a LR (1). Esto significa que puede encontrar una gramática LR (1) para cada DCFL. Por supuesto, una gramática LR (1) sigue siendo una gramática libre de contexto, pero con una propiedad especial: a partir de las gramáticas LR (1), podemos construir fácilmente tablas de análisis para guiar un analizador determinista (con anticipación de 1 símbolo, por lo tanto, LR (1)). Estas tablas de análisis serían otra representación, aunque algo menos legible.

Por cierto, tenga en cuenta que es indecidible si un lenguaje libre de contexto dado es determinista (Teorema de Greibach).

Debo admitir que nunca he oído hablar de VPL.

DaniCL
fuente
Bueno, las representaciones canónicas rara vez son fáciles de leer, pero gracias por las instrucciones. Si el Teorema de Greibach establece que hay idiomas en CFL que no pueden decidirse en DCFL, ¿cómo se especifican estos idiomas? Si tiene una gramática, podría expresarla en Backus Naur Form (BNF), por lo que el Teorema de Greibach parece implicar que no hay un subconjunto de BNF que exprese exactamente DCFL. Los lenguajes pushdown visibles también se conocen como "palabras anidadas". Esta clase de idiomas es relativamente nueva pero relevante para analizar árboles ordenados y estructuras similares.
Jakob
Sobre el tema de la indecidibilidad: un lenguaje es un CFL si existe una gramática libre de contexto (CFG) que lo genera. Si le dan un CFG, puede decidir si esta gramática es LR (k), por lo tanto, determinista. (Lo mismo se aplica a los autómatas pushdown: es fácil verificar si un PDA determinado es determinista o no). Sin embargo, suponga que tiene un CFG que no es LR (k); esto no significa que el idioma no sea un DCFL ; es posible que no pueda encontrar una gramática LR (k) para ello.
DaniCL
"puede decidir si esta gramática es LR (k)" para k fijo.
Sylvain
@Jakob: el teorema de Greibach no dice eso, e incluso si lo hiciera, solo significaría que los CFG arbitrarios no son un formalismo de notación adecuado para DCFG, al igual que no son un buen formalismo de notación para los idiomas normales (ya sea CFG describe que un lenguaje regular también es indecidible). Sin embargo, no hay nada de malo en elegir una subclase de los CFG (por ejemplo, las gramáticas regulares para los idiomas regulares).
reinierpost
Aquí hay una tradición de redacción descuidada en los libros de texto: tienden a hacer declaraciones tales como "es indecidible si un CFL es regular / determinista" cuando lo que realmente quieren decir con eso es "es indecidible si un CFG describe un regular / determinista idioma".
reinierpost