Gramática booleana
Las gramáticas booleanas, introducidas por Okhotin, son una clase de gramáticas formales estudiadas en la teoría de lenguajes formales. Esta gramáticas extienden el tipo básico de gramáticas, las gramáticas libres de contexto con operaciones de conjunción y negación. Además de estas operaciones explícitas, las gramáticas booleanas permiten la disyunción implícita representada por múltiples reglas para un solo símbolo no terminal, que es la única conectividad lógica expresable en gramáticas libres de contexto. La conjunción y la negación pueden usarse, en particular, para especificar la intersección y el complemento de los idiomas. Una clase intermedia de gramáticas conocidas como gramáticas conjuntivas permite la conjunción y la disyunción pero no la negación.
Las reglas de una gramática booleana tienen la forma
dónde es un no-terminal, y , ..., , , ..., son cadenas formadas de símbolos en y . Informalmente, tal regla afirma que cada cadena sobre que satisface cada una de las condiciones sintácticas representadas por , ..., y ninguna de las condiciones sintácticas representadas por , ..., satisface la condición definida por .
Existen varias definiciones formales del lenguaje generado por una gramática booleana. Tienen una cosa en común: si la gramática se representa como un sistema de lenguajes de ecuaciones con uniones, intersecciones, complementos y concatenación, los lenguajes generados por la gramática deben ser la solución de este sistema. La semántica difiere en detalles, algunos definen los lenguajes usando ecuaciones de lenguaje, algunos se basan en ideas del campo de la programación lógica. Sin embargo, estos problemas no triviales de definición formal son en su mayoría irrelevantes para consideraciones prácticas, y uno puede construir gramáticas de acuerdo con la semántica informal dada. Las propiedades prácticas del modelo son similares a las de las gramáticas conjuntivas, mientras que las capacidades descriptivas se mejoran aún más. En particular, se conservan algunas propiedades prácticamente útiles heredadas de gramáticas libres de contexto, como los algoritmos de análisis eficientes, ver Okhotin (2010) .
Referencias
[editar]- Okhotin, Alexander (10 de octubre de 2004). «Boolean Grammars». Information and Computation 194 (1): 19-48. doi:10.1016/j.ic.2004.03.006.
- Okhotin, Alexander (2006). Nueve problemas abiertos sobre gramáticas conjuntivas y booleanas (PDF) (Informe técnico). TUCS 794.
- Kountouriotis, Vassilis; Nomikos, Christos; Rondogiannis, Panos (2009). «Well-founded semantics for Boolean grammars». Information and Computation 207 (9): 945-967. doi:10.1016/j.ic.2009.05.002.
- Okhotin, Alexander (2010). "Análisis rápido de gramáticas booleanas: una generalización del algoritmo de Valiant", Conferencia Internacional sobre Desarrollos en Teoría del Lenguaje (DLT 2010), Lecture Notes in Computer Science 6224, pp. 340-351. Preprint disponible en línea.