En la teoría del lenguaje formal , un lenguaje libre de contexto ( CFL, por sus siglas en inglés), también llamado lenguaje de tipo Chomsky 2 , es un lenguaje generado por una gramática libre de contexto (CFG, por sus siglas en inglés).
Los lenguajes libres de contexto tienen muchas aplicaciones en los lenguajes de programación ; en particular, la mayoría de las expresiones aritméticas se generan mediante gramáticas libres de contexto.
Fondo
Gramática libre de contexto
Diferentes gramáticas libres de contexto pueden generar el mismo lenguaje libre de contexto. Las propiedades intrínsecas del lenguaje se pueden distinguir de las propiedades extrínsecas de una gramática particular comparando varias gramáticas que describen dicho lenguaje.
Autómatas
El conjunto de todos los lenguajes libres de contexto es idéntico al conjunto de lenguajes aceptados por los autómatas de pila , lo que hace que estos lenguajes sean susceptibles de análisis sintáctico. Además, para una gramática libre de contexto dada, existe una forma directa de producir un autómata de pila para la gramática (y, por lo tanto, el lenguaje correspondiente), aunque el proceso inverso (producir una gramática a partir de un autómata) no es tan directo.
Ejemplos
Un ejemplo de lenguaje libre de contexto es, el lenguaje de todas las cadenas no vacías de longitud par, cuyas primeras mitades completas son 'a ', y cuyas segundas mitades completas son 'b '. L es generado por la gramáticaEste lenguaje no es regular. Es aceptado por el autómata de pila.dóndese define de la siguiente manera: [ nota 1 ]
Los CFL no ambiguos son un subconjunto propio de todos los CFL: existen CFL inherentemente ambiguos. Un ejemplo de un CFL inherentemente ambiguo es la unión deconEste conjunto es libre de contexto, ya que la unión de dos lenguajes libres de contexto siempre es libre de contexto. Pero no hay manera de analizar sin ambigüedad las cadenas en el subconjunto (no libre de contexto).que es la intersección de estos dos lenguajes. [ 1 ]
Lenguaje de Dyck
El lenguaje de todos los paréntesis correctamente emparejados es generado por la gramática..
Propiedades
Análisis sintáctico sin contexto
La naturaleza independiente del contexto del lenguaje facilita su análisis sintáctico mediante un autómata de pila.
Determinar una instancia del problema de pertenencia ; es decir, dada una cadenadeterminar sidóndees el lenguaje generado por una gramática dada; también se conoce como reconocimiento . Leslie G. Valiant demostró que el reconocimiento libre de contexto para gramáticas de forma normal de Chomsky es reducible a la multiplicación de matrices booleanas , heredando así su límite superior de complejidad de O ( n 2.3728596 ). [ 2 ] [ nota 2 ] Por el contrario, Lillian Lee ha demostrado que la multiplicación de matrices booleanas O ( n 3−ε ) es reducible al análisis sintáctico de CFG O ( n 3−3ε ), estableciendo así algún tipo de límite inferior para este último. [ 3 ]
El uso práctico de los lenguajes libres de contexto también requiere la generación de un árbol de derivación que muestre la estructura que la gramática asocia con la cadena dada. El proceso de generación de este árbol se denomina análisis sintáctico . Los analizadores sintácticos conocidos tienen una complejidad temporal cúbica con respecto al tamaño de la cadena analizada.
Formalmente, el conjunto de todos los lenguajes libres de contexto es idéntico al conjunto de lenguajes aceptados por los autómatas de pila (PDA). Los algoritmos de análisis sintáctico para lenguajes libres de contexto incluyen el algoritmo CYK y el algoritmo de Earley .
Una subclase especial de lenguajes libres de contexto son los lenguajes libres de contexto deterministas , que se definen como el conjunto de lenguajes aceptados por un autómata de pila determinista y que pueden ser analizados por un analizador LR(k) . [ 4 ]
Véase también la gramática de expresiones de análisis sintáctico como un enfoque alternativo a la gramática y el analizador sintáctico.
Propiedades de cierre
La clase de lenguajes libres de contexto es cerrada bajo las siguientes operaciones. Es decir, si L y P son lenguajes libres de contexto, los siguientes lenguajes también lo son:
- el sindicatode L y P [ 5 ]
- la inversión de L [ 6 ]
- la concatenaciónde L y P [ 5 ]
- la estrella Kleenede L [ 5 ]
- la imagende L bajo un homomorfismo[ 7 ]
- la imagende L bajo un homomorfismo inverso[ 8 ]
- el desplazamiento circular de L (el idioma)) [ 9 ]
- el cierre de prefijos de L (el conjunto de todos los prefijos de cadenas de L ) [ 10 ]
- el cociente L / R de L por un lenguaje regular R [ 11 ]
No cierre bajo intersección, complemento y diferencia
Los lenguajes libres de contexto no son cerrados bajo la intersección. Esto se puede ver tomando los lenguajesy, que son ambas independientes del contexto. [ nota 3 ] Su intersección es, que puede demostrarse que no es libre de contexto mediante el lema de bombeo para lenguajes libres de contexto . Como consecuencia, los lenguajes libres de contexto no pueden ser cerrados bajo complementación, ya que para cualesquiera lenguajes A y B , su intersección puede expresarse mediante unión y complemento: . En particular, el lenguaje libre de contexto no puede ser cerrado bajo la diferencia, ya que el complemento puede expresarse mediante la diferencia:. [ 12 ]
Sin embargo, si L es un lenguaje libre de contexto y D es un lenguaje regular, entonces su interseccióny su diferenciason lenguajes libres de contexto. [ 13 ]
Decidibilidad
En la teoría del lenguaje formal, las cuestiones relativas a los lenguajes regulares suelen ser decidibles, pero las relativas a los lenguajes libres de contexto a menudo no lo son. Es decidible si un lenguaje de este tipo es finito, pero no si contiene todas las cadenas posibles, si es regular, si es no ambiguo o si es equivalente a un lenguaje con una gramática diferente.
Los siguientes problemas son indecidibles para gramáticas libres de contexto A y B dadas arbitrariamente:
- Equivalencia: es¿ [ 14 ]
- Desunión: es ? [ 15 ] Sin embargo, la intersección de un lenguaje libre de contexto y un lenguaje regular es libre de contexto, [ 16 ] [ 17 ] por lo tanto, la variante del problema donde B es una gramática regular es decidible (ver "Vacío" más adelante).
- Contención: es [ 18 ] Nuevamente, la variante del problema donde B es una gramática regular es decidible, mientras que aquella donde A es regular generalmente no lo es . [ 19 ]
- Universalidad: es¿ [ 20 ]
- Regularidad: es¿Un lenguaje regular? [ 21 ]
- Ambigüedad: ¿es cada gramática para¿ambiguo? [ 22 ]
Los siguientes problemas son decidibles para lenguajes libres de contexto arbitrarios:
- Vacío: Dada una gramática libre de contexto A , es ¿ [ 23 ]
- Finitud: Dada una gramática libre de contexto A , es¿finito? [ 24 ]
- Membresía: Dada una gramática libre de contexto G y una palabra, hace Los algoritmos eficientes de tiempo polinomial para el problema de pertenencia son el algoritmo CYK y el algoritmo de Earley .
Según Hopcroft , Motwani , Ullman (2006), [ 25 ] muchas de las propiedades fundamentales de cierre y (in)decidibilidad de los lenguajes libres de contexto se mostraron en el artículo de 1961 de Bar-Hillel , Perles y Shamir. [ 26 ]
Lenguajes que no son libres de contexto
El conjuntoes un lenguaje sensible al contexto , pero no existe una gramática libre de contexto que genere este lenguaje. [ 27 ] Por lo tanto, existen lenguajes sensibles al contexto que no son libres de contexto. Para demostrar que un lenguaje dado no es libre de contexto, se puede emplear el lema de bombeo para lenguajes libres de contexto [ 26 ] o varios otros métodos, como el lema de Ogden o el teorema de Parikh . [ 28 ]
Notas
- ↑ significado desus argumentos y resultados:
- ↑ En el artículo de Valiant, O ( n 2.81 ) era la mejor cota superior conocida hasta entonces. Véase Multiplicación de matrices#Complejidad computacional para ver las mejoras en las cotas desde entonces.
- ↑ Una gramática libre de contexto para el lenguaje A viene dada por las siguientes reglas de producción, tomando S como símbolo inicial: S → Sc | aTb | ε ; T → aTb | ε . La gramática para B es análoga.
Referencias
- ↑ Hopcroft y Ullman 1979 , pág. 100, Teorema 4.7.
- ↑ Valiant 1975 .
- ↑ Lee 2002 .
- ↑ Knuth 1965 .
- 1 2 3 Hopcroft y Ullman 1979 , pág. 131, Corolario del Teorema 6.1.
- ↑ Hopcroft y Ullman 1979 , pág. 142, Ejercicio 6.4d.
- ↑ Hopcroft y Ullman 1979 , págs. 131-132, Corolario del Teorema 6.2.
- ↑ Hopcroft y Ullman 1979 , pág. 132, Teorema 6.3.
- ↑ Hopcroft y Ullman 1979 , págs. 142-144, Ejercicio 6.4c.
- ↑ Hopcroft y Ullman 1979 , pág. 142, Ejercicio 6.4b.
- ↑ Hopcroft y Ullman 1979 , pág. 142, Ejercicio 6.4a.
- ↑ Scheinberg 1960 .
- ↑ Beigel y Gasarch .
- ↑ Hopcroft y Ullman 1979 , pág. 203, Teorema 8.12(1).
- ↑ Hopcroft y Ullman 1979 , pág. 202, Teorema 8.10.
- ↑ Salomaa 1973 , p. 59, Teorema 6.7.
- ↑ Hopcroft y Ullman 1979 , pág. 135, Teorema 6.5.
- ↑ Hopcroft y Ullman 1979 , pág. 203, Teorema 8.12(2).
- ↑ Hopcroft y Ullman 1979 , pág. 203, Teorema 8.12(4).
- ↑ Hopcroft y Ullman 1979 , pág. 203, Teorema 8.11.
- ↑ Hopcroft y Ullman 1979 , pág. 205, Teorema 8.15.
- ↑ Hopcroft y Ullman 1979 , pág. 206, Teorema 8.16.
- ↑ Hopcroft y Ullman 1979 , pág. 137, Teorema 6.6(a).
- ↑ Hopcroft y Ullman 1979 , pág. 137, Teorema 6.6(b).
- ^ Bar -Hillel, Perles y Shamir 1961 .
- ↑ Hopcroft y Ullman 1979 .
- ↑ Stack Exchange. "¿Cómo demostrar que un lenguaje no es libre de contexto? "
Obras citadas
- Bar-Hillel, Yehoshua ; Perles, Micha Asher; Shamir, Eli (1961). "Sobre las propiedades formales de las gramáticas de estructura de frases simples". Zeitschrift für Phonetik, Sprachwissenschaft und Kommunikationsforschung . 14 (2): 143-172 .
- Beigel, Richard; Gasarch, William . "Una prueba de que si L = L1 ∩ L2 donde L1 es CFL y L2 es Regular, entonces L es Context Free que no utiliza PDA" (PDF) . Departamento de Ciencias de la Computación de la Universidad de Maryland . Archivado (PDF) del original el 12 de diciembre de 2014. Recuperado el 6 de junio de 2020 .
- Hopcroft, John E .; Ullman, Jeffrey D. (1979). Introducción a la teoría de autómatas, lenguajes y computación (1.ª ed.). Addison-Wesley. ISBN 0-201-02988-X.( Accesible para usuarios con discapacidades visuales )
- Hopcroft, John E .; Motwani, Rajeev ; Ullman, Jeffrey D. (2006) [1979]. Introducción a la teoría de autómatas, lenguajes y computación (3.ª ed.). Addison-Wesley. ISBN 0-321-45536-3.
- Knuth, DE (julio de 1965). "Sobre la traducción de lenguas de izquierda a derecha". Information and Control . 8 (6): 607– 639. doi : 10.1016/S0019-9958(65)90426-2 .
- Lee, Lillian (enero de 2002). "El análisis rápido de gramáticas libres de contexto requiere una multiplicación rápida de matrices booleanas" ( PDF) . J ACM . 49 (1): 1– 15. arXiv : cs/0112018 . doi : 10.1145/505241.505242 . S2CID 1243491. Archivado (PDF) del original el 27 de abril de 2003.
- Salomaa, Arto (1973). Lenguajes formales . Serie de monografías de la ACM. Nueva York: Academic Press. ISBN 978-0126157505.
- Scheinberg, Stephen (1960). «Nota sobre las propiedades booleanas de los lenguajes libres de contexto» (PDF) . Information and Control . 3 (4): 372–375 . doi : 10.1016/s0019-9958(60)90965-7 . Archivado (PDF) del original el 26 de noviembre de 2018.
- Valiant, Leslie G. (abril de 1975). "Reconocimiento general libre de contexto en menos de tiempo cúbico" (PDF) . Journal of Computer and System Sciences . 10 (2): 308– 315. doi : 10.1016/s0022-0000(75)80046-8 .
Lecturas adicionales
- Autebert, Jean-Michel; Berstel, Jean; Boasson, Luc (1997). «Lenguajes libres de contexto y autómatas de pila». En G. Rozenberg; A. Salomaa (eds.). Manual de lenguajes formales (PDF) . Vol. 1. Springer-Verlag. pp. 111–174 . Archivado (PDF) del original el 16 de mayo de 2011.
- Ginsburg, Seymour (1966). La teoría matemática de los lenguajes libres de contexto . Nueva York, NY, EE. UU.: McGraw-Hill.
- Sipser, Michael (1997). « 2 : Lenguajes libres de contexto». Introducción a la teoría de la computación (1.ª ed.). PWS Publishing. págs. 91–122 . ISBN 978-0-534-94728-6.( Accesible para usuarios con discapacidades visuales )
- Lenguajes formales
- Sintaxis