En la teoría del lenguaje formal, una gramática independiente del contexto ( CFG ) del es una gramática en la cual cada regla de la producción está del &rarr del V del de la forma; w donde está el V un símbolo no terminal del solo, y el w es una cadena de terminales y/o de nonterminals (posiblemente vacíos). El " del término; contexto-free" expresa el hecho de que los nonterminals se pueden reescribir sin consideración alguna hacia el contexto en el cual ocurren. Un lenguaje formal es el sin contexto si una cierta gramática independiente del contexto lo genera.
Las gramáticas independientes del contexto desempeñan un papel fundamental en la descripción y el diseño de los lenguajes de programación y de los recopiladores . También se utilizan para analizar el sintaxis de las idiomas naturales
La gramática independiente del contexto (o " grammar" de la frase-estructura; en los años 50 mid-, tomó la manera en la cual la lingüística había descrito esta estructura gramatical, y entonces dado vuelta le en matemáticas rigurosas. Una gramática independiente del contexto proporciona un mecanismo simple y exacto para describir los métodos por los cuales las frases en alguÌn de lenguaje natural son construidas de bloques más pequeños, capturando el " structure" del bloque; de oraciones de una manera natural. Su simplicidad hace el formalismo favorable al estudio matemático riguroso, pero viene en un precio: las características importantes del sintaxis de lenguaje natural tales como acuerdo y referencia no se pueden expresar en una manera natural, o en absoluto.
La estructura de bloque fue introducida en los lenguajes de programación de la computadora por el proyecto del ALGOL, que, por consiguiente, también ofreció una gramática independiente del contexto para describir el sintaxis resultante del ALGOL. Ésta se convirtió en una característica estándar de los lenguajes de programación, y la notación para las gramáticas usadas en descripciones concretas de los lenguajes de programación vino ser conocida como forma de Backus-Naur, después de que dos miembros de la lengua del ALGOL diseñen a comité.
El " structure" del bloque; el aspecto que la captura de las gramáticas independientes del contexto es tan fundamental a la gramática que los términos sintaxis y gramática se identifican a menudo con gramática independiente del contexto gobierna, especialmente en de informática. Los apremios formales no capturados por la gramática entonces se consideran ser parte del " semantics" de la lengua.
Las gramáticas independientes del contexto son bastante simples permitir la construcción de los algoritmos de análisis sintáctico eficientes que, para una secuencia dada, determinan si y cómo pueden ser generados de la gramática. Un programa de análisis de Earley es un ejemplo de tal algoritmo, mientras que los programas de análisis ampliamente utilizados LR y LL son algoritmos más eficientes que se ocupan solamente de subconjuntos más restrictivos de gramáticas independientes del contexto.
donde
1. el es un sistema finito de carácteres o de variables no terminales del . Representan diversos tipos de frase o de cláusula en la oración. El es un sistema finito del terminal s del, desunen con el , los cuales componen el contenido real de la oración. el es la variable del comienzo, usada para representar la oración entera (o el programa). Debe ser un elemento del . el es una relación del al ^ del de tal que existe el .
Además, el es un sistema finito. Llaman los miembros del la regla s del o la producción s del de la gramática. El asterisco representa la operación de la estrella de Kleene.
definición adicional 1
Para cualquie secuencia , decimos rinde , escrito como , si tales que y . ¡Así, es el resultado de aplicar el al .
definición adicional 2
Para cualquie (o en alguÌn libro de textos) si existe el tal que de k
definición adicional 3
La lengua de un es el sistema
definición adicional 4
Un reputa una lengua sin contexto (CFL) si existe un CFG, un tales que .
El &epsilon del carácter especial; soportes para la secuencia vacía. Cambiando la gramática antedicha a: &rarr de S; aSb | ε obtenemos una gramática que genera el en lugar de otro. Esto diferencia solamente en que contiene la secuencia vacía mientras que no hizo la gramática original.
Esta gramática puede, por ejemplo, generar el " de la secuencia; (x + y) * x - z * y/(x + x)" como sigue: " S" es la secuencia inicial. " S - S" es el resultado de aplicar el quinto &rarr de la transformación; S - S al S. " S * S - S/S" es el resultado de aplicar el sexto transforma al primer S y séptimo al segundo S. " (S) * S - S/(S)" es el resultado de aplicar el final transforma a seguro de los nonterminals. " (S + S) * S - S * S/(S + S) " es el resultado del cuarto y fifth transforma a ciertos nonterminals. " (x + y) * x - z * y/(x + x)" es el resultado final, obtenido usando las primeras tres transformaciones para dar vuelta a los nonterminals de S en los terminales x, y, y Z.
Esta gramática es el ambiguo, significando que uno puede generar la misma secuencia con más de un analiza el árbol . Por ejemplo, " x + y * z" pudo tener o + o * analizado primero; éstos producirán probablemente diversos resultados.
Hay dos maneras comunes de describir cómo una secuencia dada se puede derivar del símbolo de inicio de una gramática dada. La manera más simple es enumerar las cadenas consecutivas de símbolos, comenzando con el símbolo de inicio y terminando con la secuencia, y las reglas se han aplicado que. Si introducimos una estrategia tal como " substituir siempre el first" no terminal extremo izquierdo; entonces para las gramáticas independientes del contexto la lista de reglas aplicadas de la gramática está por sí mismo suficiente. Esto se llama la derivación extrema izquierda del de una secuencia. Por ejemplo, si tomamos la gramática siguiente:   del ;   del
; &rarr del
(1) S; &RARR DEL
y el " de la secuencia; 1 + 1 + a" entonces una derivación izquierda de esta secuencia es la lista (1), (1), (2), (2), (3). La derivación de derecha del se define análogo como la lista que conseguimos si substituimos siempre el primer no terminal de derecha. En este caso ésta podía ser la lista (1), (3), (1), (2), (2).
La distinción entre la derivación extrema izquierda y la derivación de derecha es importante porque en la mayoría de los programas de análisis la transformación de la entrada es definida dando un pedazo de código para cada regla de la gramática se ejecute que siempre que la regla sea aplicada. Por lo tanto es importante saber si el programa de análisis determina una derivación extrema izquierda o de derecha porque éste determina la orden en la cual los pedazos de código serán ejecutados. Ver para los programas de análisis un LL del ejemplo y los programas de análisis de LR
Una derivación también impone en un cierto sentido una estructura jerárquica ante la secuencia se deriva que. Por ejemplo, si el " de la secuencia; 1 + 1 + a" se deriva según la derivación extrema izquierda:   del ;   del
;
S→   del
de S+S (1); →   del
de S+S+S (1); →   del
de 1+S+S (2); →   del
de 1+1+S (2); → 1+1+a (3)
la estructura de la secuencia sería:
l {{{1} S + {1} S} S + {a} S} S donde {…} S indica una subsecuencia reconocida como perteneciendo al S. Esta jerarquía se puede también considerar como árbol:   del ;   del
;
S /|\ / | \ / | \ S “+” S /|\ | / | \ | S “+” S “a” | | “1” “1”
Este árbol se llama un árbol del sintaxis concreto del (véase también el árbol de abstract syntax ) de la secuencia. En este caso las actuales derivaciones extremas izquierdas y de derecha definen el mismo árbol del sintaxis; sin embargo, hay otra derivación (extrema izquierda) del mismo   del de la secuencia;
S→   del
de S + de S (1) x; → 1 +   del
de S (2); → 1 + &NBSP DEL
y esto define el árbol siguiente del sintaxis:   del ;   del
;
S /|\ / | \ / | \ S “+” S | /|\ | / | \ “1” S “+” S | | “1” “a”
Si, para ciertas secuencias en la lengua de la gramática, hay más de un árbol de análisis, después la gramática reputa una gramática ambigua . La ambigüedad es la característica de gramáticas algo que la lengua porque la lengua se deriva de la gramática tan; la ambigüedad no depende de lengua. Tales gramáticas son generalmente duras de analizar porque el programa de análisis no puede decidir siempre a qué regla de la gramática tiene que aplicar.
Debido a la forma especialmente simple de reglas de producción en gramáticas de la forma normal de Chomsky, esta forma normal tiene implicaciones teóricas y prácticas. Por ejemplo, dado una gramática independiente del contexto, una puede utilizar la forma normal de Chomsky para construir un algoritmo del polinómico-tiempo que decida a si una secuencia dada está en la lengua representada por esa gramática o no (el algoritmo CYK).
Como consecuencia de esto, es también undecidable si dos CFGs describen la misma lengua, puesto que no podemos incluso decidir si un CFG es equivalente al CFG trivial que decide a la lengua de todas las secuencias.
Otro punto digno de mencionar es que el problema de determinar si una gramática sensible al contexto describe una lengua sin contexto es undecidable.
En de informática, los ejemplos de este acercamiento incluyen las gramáticas de dos niveles de las gramáticas puestas en un índice de las gramáticas de cualidad de las gramáticas de afijo y de Van Wijngaarden
Las extensiones similares existen en lingüística.
Otra extensión es permitir que los símbolos adicionales aparezcan en el lado de mano izquierda de reglas, obligando su uso. Esto produce el formalismo de las gramáticas sensibles al contexto
El Chomsky esperaba inicialmente superar las limitaciones de gramáticas independientes del contexto agregando las reglas de la transformación., aunque sus ejemplos específicos con respecto a la insuficiencia de CFGs en términos de su capacidad generativa débil fueran refutados más adelante. El Gerald Gazdar y el Geoffrey Pullum han sostenido que a pesar de algunas construcciones no-contexto-libres en de lenguaje natural (tal como dependencias Cruz-seriales en alemán suizo ), la gran mayoría de formas en de lenguaje natural es de hecho sin contexto.
| Random links: | Jazz vanguardista | Elemental | Sátiro del baile | & de Harold Melvin; las notas azules | Enero Wouters |