Las gramáticas conjuntivas son una clase de gramáticas formales
estudiadas en la teoría del lenguaje formal . Extienden el tipo básico de gramáticas, las gramáticas libres de contexto , con una operación de conjunción . Además de la conjunción explícita, las gramáticas conjuntivas permiten la disyunción implícita
representada por múltiples reglas para un único símbolo no terminal, que es el único conectivo lógico expresable en gramáticas libres de contexto. La conjunción se puede utilizar, en particular, para especificar la intersección de idiomas. Una extensión adicional de las gramáticas conjuntivas conocidas como gramáticas booleanas permite además la negación
explícita .
Las reglas de una gramática conjuntiva son de la forma
donde es un no terminal y , ...,
son cadenas formadas por símbolos en y (conjuntos finitos de símbolos terminales y no terminales respectivamente). De manera informal, dicha regla afirma que cada cadena sobre
que satisface cada una de las condiciones sintácticas representadas por , ...,
por lo tanto satisface la condición definida por .
Definición formal
Una gramática conjuntiva se define mediante la tupla de 4 donde
- V es un conjunto finito; cada elemento se denomina símbolo no terminal o variable . Cada variable representa un tipo diferente de frase u oración. Las variables también se denominan a veces categorías sintácticas.
- Σ es un conjunto finito de terminales s, disjuntos de V , que forman el contenido real de la oración. El conjunto de terminales es el alfabeto de la lengua definido por la gramática G .
- R es un conjunto finito de producciones, cada una de las cuales tiene la forma para algunas en y . Los miembros de R se denominan reglas o producciones de la gramática.
- S es la variable de inicio ( o símbolo de inicio), que se utiliza para representar la oración completa (o el programa). Debe ser un elemento de V.
Es común enumerar todos los lados derechos del mismo lado izquierdo en la misma línea, usando | (el símbolo de barra vertical ) para separarlos. Las reglas y, por lo tanto, se pueden escribir como .
Existen dos definiciones formales equivalentes del lenguaje especificado por una gramática conjuntiva. Una definición se basa en representar la gramática como un sistema de ecuaciones lingüísticas con unión, intersección y concatenación y considerar su solución mínima. La otra definición generaliza la definición generativa de Chomsky de las gramáticas independientes del contexto utilizando la reescritura de términos sobre conjunción y concatenación.
Definición por derivación
Para cualquier cadena , decimos que u produce directamente v , escrito como , si
- o bien existe una regla tal que y ,
- o existe una cadena tal que y .
Para cualquier cadena decimos que G genera w , escrito como , si tal que .
El lenguaje de una gramática es el conjunto de todas las cadenas que genera.
Ejemplo
La gramática , con producciones
- ,
- ,
- ,
- ,
- ,
es conjuntivo. Una derivación típica es
Se puede demostrar que . El lenguaje no es libre de contexto, como lo demuestra el lema de bombeo para lenguajes libres de contexto .
Algoritmos de análisis
Aunque el poder expresivo de las gramáticas conjuntivas es mayor que el de las gramáticas libres de contexto, las gramáticas conjuntivas conservan algo de lo último. Lo más importante es que existen generalizaciones de los principales algoritmos de análisis sintáctico libres de contexto, incluidos el descenso recursivo en tiempo lineal, el LR generalizado en tiempo cúbico , el algoritmo Cocke-Kasami-Younger en tiempo cúbico , así como el algoritmo de Valiant que se ejecuta tan rápido como la multiplicación de matrices.
Propiedades teóricas
Una propiedad que es indecidible ya para lenguajes libres de contexto o intersecciones finitas de ellos, debe ser indecidible también para gramáticas conjuntivas; estas incluyen: vacío , finitud , regularidad , libertad de contexto , [n 1] inclusión y equivalencia. [n 2]
La familia de lenguajes conjuntivos está cerrada bajo unión, intersección, concatenación y estrella de Kleene , pero no bajo homomorfismo de cadenas , prefijo , sufijo y subcadena. El cierre bajo complemento y bajo homomorfismo de cadenas ε-libre son problemas aún abiertos (a fecha de 2001). [1] : 533
Se ha investigado el poder expresivo de las gramáticas sobre un alfabeto de una sola letra. [ cita requerida ]
Este trabajo proporcionó una base para el estudio de ecuaciones lingüísticas de una forma más general.
Autómatas de empuje alternado sincronizado
Aizikowitz y Kaminski [2] introdujeron una nueva clase de autómatas de empuje (PDA) llamada autómatas de empuje alternados sincronizados (SAPDA). Demostraron que eran equivalentes a las gramáticas conjuntivas de la misma manera que los PDA no deterministas son equivalentes a las gramáticas libres de contexto.
Notas
- ^ Dada una gramática conjuntiva, ¿su lenguaje generado es vacío / finito / regular / libre de contexto?
- ^ Dadas dos gramáticas conjuntivas, ¿el lenguaje generado por la primera es un subconjunto de / igual al de la segunda?
Referencias
- ^ Alexander Okhotin (2001). "Gramáticas conjuntivas" (PDF) . Revista de autómatas, lenguajes y combinatoria . 6 (4): 519–535.
- ^ Aizikowitz, Tamar; Kaminski, Michael (2011). "Gramáticas conjuntivas LR(0) y autómatas de empuje alternado sincronizado determinista". Ciencias de la computación: teoría y aplicaciones . Apuntes de clase en ciencias de la computación. Vol. 6651. págs. 345–358. doi :10.1007/978-3-642-20712-9_27. ISBN 978-3-642-20711-2. ISSN 0302-9743.
Enlaces externos
- Artur Jeż (2007). "Las gramáticas conjuntivas generan lenguajes unarios no regulares" (PDF) (Diapositivas de la conferencia celebrada en la Conferencia Internacional sobre Desarrollos en la Teoría del Lenguaje ) . Consultado el 5 de noviembre de 2019 .
- «Página de Alexander Okhotin sobre gramáticas conjuntivas». 9 de octubre de 2011. Consultado el 5 de noviembre de 2019 .
- Alexander Okhotin (2007). "Nueve problemas abiertos para gramáticas conjuntivas y booleanas". Boletín de la EATCS . Archivado desde el original el 29 de septiembre de 2007.
- Alexander Okhotin (2013). "Gramáticas conjuntivas y booleanas: el verdadero caso general de las gramáticas libres de contexto". Computer Science Review . 9 : 27–59. doi :10.1016/j.cosrev.2013.06.001.
Este artículo reemplaza los estudios anteriores, "Una visión general de las gramáticas conjuntivas" (Boletín de la EATCS, 2004) y "Nueve problemas abiertos para las gramáticas conjuntivas y booleanas".
- Jeż, Artur (2008). "Las gramáticas conjuntivas generan lenguajes unarios no regulares". Revista Internacional de Fundamentos de la Ciencia de la Computación . 19 (3): 597–615. doi :10.1142/S012905410800584X.Versión del informe técnico (pdf) [ enlace muerto permanente ]