stringtranslate.com

Gramática de árbol regular

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

Definición

Una gramática de árbol regular G está definida por la tupla

GRAMO = ( norte , Σ, Z , P ),

dónde

Derivación de árboles

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

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

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

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

BListcontras ( Bool , BList ) ⇒ contras ( falso , contras ( Bool , BList )) ⇒ contras ( falso , contras ( verdadero , nulo )).

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 datos  Bool  =  falso  |  verdadero  tipo de datos  BList  =  nil  |  contras  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 ) , usando 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:

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

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

Propiedades del idioma

Si L 1 , L 2 son 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:

Ver también

Referencias

  1. ^ "Gramáticas de árboles regulares como formalismo para la subespecificación del 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). "Idiomas visiblemente desplazados" (PDF) . Actas del trigésimo sexto simposio anual de ACM sobre teoría de la informática - 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). "Agregar estructura anidada a las palabras" (PDF) . Revista de la 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 periódicamente". Generación de código: conceptos, herramientas y técnicas . Talleres de Computación. Saltador. págs. 3–29.
  6. ^ Comon, Hubert (1990). "Fórmulas ecuacionales en álgebras ordenadas por orden". Proc. ICALP .
  7. ^ Gilleron, R.; Tison, S.; Tommasi, M. (1993). "Resolución de sistemas de restricciones establecidas utilizando autómatas de árbol". Décimo Simposio Anual sobre Aspectos Teóricos de la Informática . LNCS. vol. 665. Saltador. págs. 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 de redes de gramática de árboles regulares y su aplicación a la extracción de patrones de infección viral humana" . J. de Comp. Biografía.[1]

Lectura adicional