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 conector lógico expresable en las gramáticas libres de contexto. La conjunción puede utilizarse, en particular, para especificar la intersección de lenguajes. Una extensión adicional de las gramáticas conjuntivas, conocida como gramática booleana, 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 toda cadena sobre que satisface cada una de las condiciones sintácticas representadas por , ..., satisface, por lo tanto, la condición definida por .
Definición formal
Una gramática conjuntiva se define por la cuádrupla donde
- V es un conjunto finito ; cada elemento se denomina símbolo no terminal o variable . Cada variable representa un tipo diferente de frase o cláusula en la oración. A las variables también se las denomina a veces categorías sintácticas.
- Σ es un conjunto finito de terminales s , disjunto de V , que conforman el contenido real de la oración. El conjunto de terminales es el alfabeto del lenguaje definido por la gramática G.
- R es un conjunto finito de producciones, cada una de la forma para algún 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 toda la frase ( o 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. Por lo tanto, las reglas y se pueden escribir como .
Existen dos definiciones formales equivalentes del lenguaje especificado por una gramática conjuntiva. Una se basa en representar la gramática como un sistema de ecuaciones lingüísticas con unión, intersección y concatenación, considerando su solución mínima. La otra generaliza la definición generativa de Chomsky para las gramáticas libres de contexto mediante 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 , escrita como , si es tal que .
El lenguaje de una gramática es el conjunto de todas las cadenas de caracteres 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, probado por el lema de bombeo para lenguajes libres de contexto .
Algoritmos de análisis sintáctico
Si bien el poder expresivo de las gramáticas conjuntivas es mayor que el de las gramáticas libres de contexto, las gramáticas conjuntivas conservan algunas de las ventajas de estas últimas. Lo más importante es que existen generalizaciones de los principales algoritmos de análisis sintáctico libre de contexto, incluyendo el descenso recursivo de tiempo lineal, el LR generalizado de tiempo cúbico , el algoritmo de Cocke-Kasami-Younger de tiempo cúbico , así como el algoritmo de Valiant, que se ejecuta tan rápido como una multiplicación de matrices.
Propiedades teóricas
Una propiedad que ya es indecidible para lenguajes libres de contexto o intersecciones finitas de ellos, debe ser también indecidible para gramáticas conjuntivas; estas incluyen: vacuidad , finitud , regularidad , ausencia de contexto , [ n 1 ] inclusión y equivalencia. [ n 2 ]
La familia de lenguajes conjuntivos es 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 de ε sigue siendo un problema abierto (a fecha de 2001). [ 1 ] : 533
Se ha investigado el poder expresivo de las gramáticas sobre un alfabeto de una sola letra.
Este trabajo sentó las bases para el estudio de ecuaciones lingüísticas de forma más general.
Synchronized alternating pushdown automata
Aizikowitz and Kaminski[2] introduced a new class of pushdown automata (PDA) called synchronized alternating pushdown automata (SAPDA). They proved it to be equivalent to conjunctive grammars in the same way as nondeterministic PDAs are equivalent to context-free grammars.
Notes
References
- ^Alexander Okhotin (2001). "Conjunctive Grammars"(PDF). Journal of Automata, Languages and Combinatorics. 6 (4): 519–535.
- ^Aizikowitz, Tamar; Kaminski, Michael (2011). "LR(0) Conjunctive Grammars and Deterministic Synchronized Alternating Pushdown Automata". Computer Science – Theory and Applications. Lecture Notes in Computer Science. Vol. 6651. pp. 345–358. doi:10.1007/978-3-642-20712-9_27. ISBN 978-3-642-20711-2. ISSN 0302-9743.
External links
- Artur Jeż (2007). "Conjunctive grammars generate non-regular unary languages"(PDF) (Slides of talk held at the International Conference on Developments in Language Theory). Retrieved 5 November 2019.
- "Alexander Okhotin's page on conjunctive grammars". 9 October 2011. Retrieved 5 November 2019.
- Alexander Okhotin (2007). "Nine open problems for conjunctive and Boolean grammars". Bulletin of the EATCS. Archived from the original on 2007-09-29.
- Alexander Okhotin (2013). "Conjunctive and Boolean grammars: The true general case of the context-free grammars". Computer Science Review. 9: 27–59. doi:10.1016/j.cosrev.2013.06.001.
This paper supersedes the earlier surveys, "An overview of conjunctive grammars" (Bulletin of the EATCS, 2004) and "Nine open problems for conjunctive and Boolean grammars"
- Jeż, Artur (2008). "Conjunctive grammars generate non-regular unary languages". International Journal of Foundations of Computer Science. 19 (3): 597–615. doi:10.1142/S012905410800584X.Versión del informe técnico (pdf)
- Lenguajes formales