Articulo de referencia

gramática de árbol regular

En la informática teórica y la teoría del lenguaje formal , una gramática de árbol regular es una gramática formal que describe un conjunto de árboles dirigidos o términos . [ 1...

En la informática teórica y la teoría del lenguaje formal , una gramática de árbol regular es una gramática formal que describe un conjunto de árboles dirigidos o términos . [ 1 ] Una gramática de palabras regular puede considerarse un tipo especial de gramática de árbol regular, que describe un conjunto de árboles de ruta única .

Definición

Una gramática de árbol regular G se define mediante la tupla G = ( N , Σ, Z , P ), donde:

  • N es un conjunto finito de no terminales,
  • Σ es un alfabeto jerarquizado (es decir, un alfabeto cuyos símbolos tienen una aridad asociada ) disjunto de N ,
  • Z es el no terminal inicial, con ZN , y
  • P es un conjunto finito de producciones de la forma At , con AN , y tT Σ ( N ) , donde T Σ ( N ) es el álgebra de términos asociada , es decir el conjunto de todos los árboles compuestos a partir de símbolos en Σ ∪ N según sus aridades, donde los no terminales se consideran nulos.

Derivación de árboles

La gramática G define implícitamente un conjunto de árboles: cualquier árbol que pueda derivarse de Z utilizando el conjunto de reglas P se dice que está descrito por G. Este conjunto de árboles se conoce como el lenguaje de G. Formalmente, la relación ⇒ G en el conjunto T Σ ( N ) se define de la siguiente manera:

Un árbol t 1T Σ ( N ) puede derivarse en un solo paso en un árbol t 2T Σ ( N ) (en resumen: t 1G t 2 ), si existe un contexto S y una producción ( At ) ∈ P tales que:

  • t 1 = S [ A ], y
  • t 2 = S [ t ].

Aquí, un contexto significa un árbol con exactamente un agujero; si S es tal contexto, S [ t ] denota el resultado de llenar el árbol t en el agujero de S.

El lenguaje de árbol generado por G es el lenguaje L ( G ) = { tT Σ | ZG * t } .

Aquí, T Σ denota el conjunto de todos los árboles compuestos por símbolos de Σ, mientras que ⇒ G * denota aplicaciones sucesivas de ⇒ G .

Un lenguaje generado por alguna gramática de árbol regular se llama lenguaje de árbol regular .

Ejemplos

Ejemplo de árbol de derivación de G 1 en notación lineal (tabla superior izquierda) y gráfica (imagen principal).

Sea G 1 = ( N 11 , Z 1 , P 1 ), donde

  • N 1 = { Bool , BList } es nuestro conjunto de no terminales,
  • Σ 1 = { true , false , nil , cons (.,.) } es nuestro alfabeto clasificado, las aridades indicadas por argumentos ficticios (es decir, el símbolo cons tiene aridad 2),
  • Z 1 = BList es nuestro no terminal inicial, y
  • El conjunto P 1 consta de las siguientes producciones:
    • Booleanofalso
    • Booleanoverdadero
    • BListnulo
    • BListcontras ( Bool , BList )

Un ejemplo de derivación de la gramática G 1 es

BListcons ( Bool , BList ) ⇒ cons ( false , cons ( Bool , BList )) ⇒ cons ( false , cons ( true , nil )).

La imagen muestra el árbol de derivación correspondiente ; es un árbol de árboles (imagen principal), mientras que un árbol de derivación en gramáticas de palabras es un árbol de cadenas (tabla superior izquierda).

El lenguaje de árbol generado por G 1 es el conjunto de todas las listas finitas de valores booleanos, es decir, L ( G 1 ) resulta ser igual a T Σ1 . La gramática G 1 corresponde a las declaraciones de tipos de datos algebraicos (en el lenguaje de programación Standard ML ):

tipo de dato Bool = false | verdadero tipo de dato BList = nil | cons de Bool * BList

Cada miembro de L ( G 1 ) corresponde a un valor Standard-ML de tipo BList.

Para otro ejemplo, sea G 2 = ( N 1 , Σ 1 , BList 1 , P 1P 2 ) , utilizando el conjunto no terminal y el alfabeto de arriba, pero extendiendo el conjunto de producción por P 2 , que consta de las siguientes producciones:

  • BList 1contras ( verdadero , BList )
  • BList 1contras ( falso , BList 1 )

El lenguaje L ( G₂ ) es el conjunto de todas las listas finitas de valores booleanos que contienen verdadero al menos una vez. El conjunto L ( G₂ ) no tiene un tipo de dato equivalente en Standard ML, ni en ningún otro lenguaje funcional. Es un subconjunto propio de L ( G₁ ). El término del ejemplo anterior también pertenece a L ( G₂ ), como muestra la siguiente derivación:

BList 1contras ( falso , BList 1 ) ⇒ contras ( falso , contras ( verdadero , BList )) ⇒ contras ( falso , contras ( verdadero , nulo )).

Propiedades del lenguaje

Si L 1 , L 2 son ambos lenguajes de árbol regulares, entonces los conjuntos de árboles L 1L 2 , L 1L 2 , y L 1 \ L 2 también son lenguajes de árbol regulares, y es decidible si L 1L 2 , y si L 1 = L 2 .

Caracterizaciones alternativas y relación con otros lenguajes formales

Aplicaciones

Las aplicaciones de las gramáticas de árboles regulares incluyen:

Véase también

Referencias

  1. "Gramáticas de árboles regulares como formalismo para la subespecificación de alcance". CiteSeerX 10.1.1.164.5484 . 
  2. ^ Común, Hubert; Dauchet, Max; Gilleron, Remi; Loding, Christof; Jacquemard, Florent; Lugiez, Denis; Tison, Sophie ; Tommasi, Marc (12 de octubre de 2007). "Técnicas y aplicaciones de autómatas de árboles" . Consultado el 25 de enero de 2016 .
  3. Alur, R.; Madhusudan, P. (2004). «Lenguajes visiblemente de pila» (PDF) . Actas del trigésimo sexto simposio anual de la ACM sobre Teoría de la Computación - STOC '04 . págs. 202–211 . doi : 10.1145/1007352.1007390 . ISBN  978-1581138528. S2CID 7473479 . Sección 4, Teorema 5,
  4. Alur, R.; Madhusudan, P. (2009). "Añadiendo estructura de anidamiento a las palabras" (PDF) . Journal of the ACM . 56 (3): 1– 43. CiteSeerX 10.1.1.145.9971 . doi : 10.1145/1516512.1516518 . S2CID 768006 .  Sección 7
  5. Emmelmann, Helmut (1991). "Selección de código mediante reescritura de términos controlada regularmente". Generación de código: conceptos, herramientas y técnicas . Talleres de informática. Springer. págs. 3–29 . 
  6. Comon, Hubert (1990). "Fórmulas ecuacionales en álgebras ordenadas". Proc. ICALP .
  7. Gilleron, R.; Tison, S .; Tommasi, M. (1993). "Resolución de sistemas de restricciones de conjuntos mediante autómatas de árbol". 10.º Simposio Anual sobre Aspectos Teóricos de la Informática . LNCS. Vol. 665. Springer. pp. 505–514 .  
  8. Burghardt, Jochen (2002). "Axiomatización de álgebras finitas". Avances en Inteligencia Artificial . LNAI. vol. 2479. Saltador. págs. 222–234 . arXiv : 1403.7347 . Código Bib : 2014arXiv1403.7347B . ISBN   3-540-44185-9.
  9. Ziv-Ukelson, Smoly (2016). Algoritmos para la búsqueda en redes de gramática de árboles regulares y su aplicación a la minería de patrones de infección humano-viral . J. of Comp. Bio.

Lecturas adicionales

  • Las gramáticas de árboles regulares ya fueron descritas en 1968 por:
    • Brainerd, WS (1968). "La minimización de los autómatas de árbol" . Information and Control . 13 (5): 484– 491. doi : 10.1016/s0019-9958(68)90917-0 . hdl : 10945/40204 .
    • Thatcher, JW; Wright, JB (1968). "Teoría generalizada de autómatas finitos con una aplicación a un problema de decisión de lógica de segundo orden". Mathematical Systems Theory . 2 (1): 57– 81. doi : 10.1007/BF01691346 . S2CID 31513761 . 
  • Un libro dedicado a las gramáticas de árboles es: Nivat, Maurice; Podelski, Andreas (1992). Autómatas de árboles y lenguajes . Estudios en informática e inteligencia artificial. Vol. 10. North-Holland. 
  • Los algoritmos sobre gramáticas de árboles regulares se analizan desde una perspectiva orientada a la eficiencia en: Aiken, A.; Murphy, B. (1991). "Implementing Regular Tree Expressions". ACM Conference on Functional Programming Languages ​​and Computer Architecture . pp. 427– 447. CiteSeerX 10.1.1.39.3766 .  
  • Dada una correspondencia entre árboles y pesos, la generalización del algoritmo de Dijkstra para encontrar el camino más corto, propuesta por Donald Knuth, puede aplicarse a una gramática de árboles regular para calcular, para cada no terminal, el peso mínimo de un árbol derivable. Con base en esta información, es sencillo enumerar su lenguaje en orden creciente de peso. En particular, cualquier no terminal con peso mínimo infinito produce el lenguaje vacío. Véase: Knuth, DE (1977). "A Generalization of Dijkstra's Algorithm". Information Processing Letters . 6 (1): 1– 5. doi : 10.1016/0020-0190(77)90002-3 .
  • Los autómatas de árbol regulares se han generalizado para admitir pruebas de igualdad entre nodos hermanos en árboles. Véase: Bogaert, B.; Tison, Sophie (1992). "Equality and Disequality Constraints on Direct Subterms in Tree Automata". Proc. 9th STACS . LNCS. Vol. 577. Springer. pp. 161–172 .  
  • Permitir pruebas de igualdad entre nodos más profundos conduce a la indecidibilidad. Véase: Tommasi, M. (1991). Automates d'Arbres avec Tests d'Égalités entre Cousins ​​Germains . LIFL-IT.