En la teoría del lenguaje formal , un lenguaje sensible al contexto es un lenguaje formal que puede definirse mediante una gramática sensible al contexto , donde la aplicabilidad de una regla de producción puede depender del contexto de los símbolos circundantes. A diferencia de las gramáticas libres de contexto , que pueden aplicar reglas independientemente del contexto, las gramáticas sensibles al contexto permiten que las reglas se apliquen solo cuando están presentes símbolos vecinos específicos, lo que les permite expresar dependencias y concordancias entre partes distantes de una cadena.
Estos lenguajes corresponden a los lenguajes de tipo 1 en la jerarquía de Chomsky y se definen de forma equivalente mediante gramáticas no contractivas (gramáticas en las que las reglas de producción nunca disminuyen la longitud total de una cadena). Los lenguajes sensibles al contexto pueden modelar fenómenos del lenguaje natural, como la concordancia sujeto-verbo , las dependencias seriales cruzadas y otras relaciones sintácticas complejas que no pueden ser capturadas por tipos de gramática más simples, lo que los hace importantes para la lingüística computacional y el procesamiento del lenguaje natural .
Propiedades computacionales
Computacionalmente, un lenguaje sensible al contexto es equivalente a una máquina de Turing lineal acotada no determinista , también llamada autómata lineal acotado . Es decir, una máquina de Turing no determinista con una cinta de solocélulas, dondees el tamaño de la entrada yes una constante asociada a la máquina. Esto significa que todo lenguaje formal que pueda ser decidido por dicha máquina es un lenguaje sensible al contexto, y todo lenguaje sensible al contexto puede ser decidido por dicha máquina.
Este conjunto de lenguajes también se conoce como NLINSPACE o NSPACE( O ( n )), porque pueden ser aceptados usando espacio lineal en una máquina de Turing no determinista. [ 1 ] La clase LINSPACE (o DSPACE( O ( n ))) se define de la misma manera, excepto que usa una máquina de Turing determinista . Claramente, LINSPACE es un subconjunto de NLINSPACE, pero no se sabe si LINSPACE = NLINSPACE. [ 2 ]
Ejemplos
Uno de los lenguajes más simples sensibles al contexto pero no libres de contexto es: el lenguaje de todas las cadenas que constan de n ocurrencias del símbolo "a", luego n "b", luego n "c" (abc, aabbcc , aaabbbccc , etc.). Un superconjunto de este lenguaje, llamado lenguaje Bach, [ 3 ] se define como el conjunto de todas las cadenas donde "a", "b" y "c" (o cualquier otro conjunto de tres símbolos) aparecen con igual frecuencia ( aabccb , baabcaccb , etc.) y también es sensible al contexto. [ 4 ] [ 5 ]
Se puede demostrar que L es un lenguaje sensible al contexto construyendo un autómata lineal acotado que acepte L. Se puede demostrar fácilmente que el lenguaje no es ni regular ni libre de contexto aplicando los lemas de bombeo respectivos para cada una de las clases de lenguajes a L.
Similarmente:
es otro lenguaje sensible al contexto; la gramática sensible al contexto correspondiente se puede proyectar fácilmente a partir de dos gramáticas libres de contexto que generan formas sentenciales en los formatos y y luego complementarlos con una producción de permutación como , un nuevo símbolo de inicio y azúcar sintáctico estándar.
es otro lenguaje sensible al contexto (el "3" en el nombre de este lenguaje pretende significar un alfabeto ternario); es decir, la operación "producto" define un lenguaje sensible al contexto (pero la "suma" define solo un lenguaje libre de contexto como la gramáticaymuestra). Debido a la propiedad conmutativa del producto, la gramática más intuitiva paraes ambiguo. Este problema puede evitarse considerando una definición del lenguaje de alguna manera más restrictiva, por ejemploEsto puede especializarse en y, de esto, a,, etc.
es un lenguaje sensible al contexto. La gramática sensible al contexto correspondiente se puede obtener como una generalización de las gramáticas sensibles al contexto para,, etc.
es un lenguaje sensible al contexto. [ 6 ]
es un lenguaje sensible al contexto (el "2" en el nombre de este lenguaje se refiere a un alfabeto binario). Esto fue demostrado por Hartmanis utilizando lemas de bombeo para lenguajes regulares y libres de contexto sobre un alfabeto binario y, después de eso, esbozando un autómata multitape lineal acotado que acepta. [ 7 ]
es un lenguaje sensible al contexto (el "1" en el nombre de este lenguaje se refiere a un alfabeto unario). Esto fue atribuido por A. Salomaa a Matti Soittola mediante un autómata lineal acotado sobre un alfabeto unario [ 8 ] (páginas 213–214, ejercicio 6.8) y también a Marti Penttonen mediante una gramática sensible al contexto también sobre un alfabeto unario (véase: Formal Languages de A. Salomaa, página 14, ejemplo 2.5).
Un ejemplo de lenguaje recursivo que no es sensible al contexto es cualquier lenguaje recursivo cuya decisión sea un problema EXPSPACE -difícil, por ejemplo, el conjunto de pares de expresiones regulares equivalentes con exponenciación.
Propiedades de los lenguajes sensibles al contexto
- La unión , intersección y concatenación de dos lenguajes sensibles al contexto también son sensibles al contexto; asimismo, la suma de Kleene de un lenguaje sensible al contexto también es sensible al contexto. [ 9 ]
- El complemento de un lenguaje sensible al contexto es en sí mismo sensible al contexto [ 10 ] un resultado conocido como el teorema de Immerman-Szelepcsényi .
- La pertenencia de una cadena a un lenguaje definido por una gramática sensible al contexto arbitraria, o por una gramática sensible al contexto determinista arbitraria, es un problema PSPACE-completo .
Véase también
- Lista de generadores de analizadores sintácticos para lenguajes sensibles al contexto
- Lenguajes indexados : un subconjunto estricto de los lenguajes sensibles al contexto.
- Jerarquía de Weir
- Formalismo gramatical ligeramente sensible al contexto : una colección de formalismos para diversas subclases de lenguajes sensibles al contexto.
Referencias
- ↑ Rothe, Jörg (2005), Teoría de la complejidad y criptología , Textos en informática teórica. Una serie de EATCS, Berlín: Springer-Verlag, pág. 77, ISBN 978-3-540-22147-0, MR 2164257 .
- ↑ Odifreddi, PG (1999), Teoría clásica de la recursión. Vol. II , Estudios en lógica y fundamentos de las matemáticas, vol. 143, Ámsterdam: North-Holland Publishing Co., pág. 236, ISBN 978-0-444-50205-6, MR 1718169 .
- ↑ Pullum, Geoffrey K. (1983). Context-freeness and the computer processing of human languages . Proc. 21st Annual Meeting of the ACL .
- ↑ Bach, E. (1981). "Constituyentes discontinuos en gramáticas categoriales generalizadas". Archivado el 21 de enero de 2014 en Wayback Machine . NELS , vol. 11, pp . 1-12 .
- ↑ Joshi, A.; Vijay-Shanker, K.; y Weir, D. (1991). «La convergencia de formalismos gramaticales ligeramente sensibles al contexto». En: Sells, P., Shieber, SM y Wasow, T. (Editores). Cuestiones fundamentales en el procesamiento del lenguaje natural . Cambridge, MA: Bradford.
- ↑ Ejemplo 9.5 (pág. 224) de Hopcroft, John E.; Ullman, Jeffrey D. (1979). Introducción a la teoría de autómatas, lenguajes y computación. Addison-Wesley
- ↑ J. Hartmanis y H. Shank (julio de 1968). "Sobre el reconocimiento de números primos por autómatas" (PDF) . Journal of the ACM . 15 (3): 382–389 . doi : 10.1145/321466.321470 . hdl : 1813/5864 . S2CID 17998039 .
- ↑ Salomaa, Arto (1969), Teoría de los autómatas , ISBN 978-0-08-013376-8, Pergamon, 276 páginas. doi : 10.1016/C2013-0-02221-9
- ↑ John E. Hopcroft; Jeffrey D. Ullman (1979). Introducción a la teoría de autómatas, lenguajes y computación . Addison-Wesley. ISBN 9780201029888.Ejercicio 9.10, pág. 230. En la edición de 2000, se omitió el capítulo sobre lenguajes sensibles al contexto.
- ↑ Immerman, Neil (1988). "El espacio no determinista es cerrado bajo complementación" (PDF) . SIAM J. Comput . 17 (5): 935–938 . CiteSeerX 10.1.1.54.5941 . doi : 10.1137/0217058 . Archivado (PDF) del original el 25 de junio de 2004.
- Sipser, M. (1996), Introducción a la teoría de la computación , PWS Publishing Co.
- Lenguajes formales