Un analizador LL es llamado un analizador LL (k) si usa k tokens cuando el analizador ve hacia
delante de la sentencia. Si existe tal analizador para cierta gramtica y puede analizar sentencias de sta gramtica sin marcha atrs, entonces es llamada una gramtica LL (k). De sta gramticas, la gramtica LL(1), aunque es bastante restrictiva, stas son muy populares porque los analizadores LL correspondientes slo necesita ver el siguiente token para hacer el anlisis de sus decisiones. Lenguajes mal diseados usualmente suelen tener gramticas con un alto nivel de k, y requieren un esfuerzo considerable a analizar.
Tipo de analizador sintctico predictivo Se considera como un intento por encontrar una derivacin por la izquierda para una cadena de entrada Intento de construir un rbol desde la raz, y creando los nodos del rbol en orden previo
LAS GRAMATICAS Y EL ANALIZADOR LL
Un analizador sintctico LL(1) no puede resolver gramticas recursivas por la izquierda Estas pueden hacer que inicie un proceso recursivo infinito Estos analizadores resultan ser los ms simples pero los menos potentes
COMO FUNCIONA UN ANALIZADOR SINTACTICO LLT
Las funciones primero y siguiente permiten rellenar, siempre que sea posible, las entradas de una tabla de anlisis sintctico predictivo para una gramtica Tambin se usan los componentes devueltos por la funcin Siguiente para sincronizar la recuperacin de errores en modo de pnico
Primero:
Si x es una cadena de smbolos gramaticales, se considera PRIMERO(x) como el conjunto de terminales que inician las cadenas derivadas de x. Si x->e entonces e tambin est en Primero(x)
Siguiente: Se define Siguiente(A) como el conjunto de terminales a que pueden aparecer inmediatamente a la derecha de A en alguna forma de frace El conjunto de terminales de a tal que haya una derivacin de la forma S->xaAaB para algn x y B.
En algn momento de la derivacin pudieron haber existido smbolos entre A y a, pero si as fue, se derivaron a e(psilon) Si A puede ser el smbolo situado ms a la derecha en una forma de frase, entonces $ esta en SIGUIENTE(A).
ANALIZADOR SINTACTICO LR(K) Los analizadores sintcticos LR, tambin conocidos como Parser LR, son un tipo de analizadores para algunas gramticas libres de contexto. Pertenece a la familia de los analizadores ascendentes, ya que construyen el rbol sintctico de las hojas hacia la raz. Utilizan la tcnica de anlisis por desplazamiento reduccin. Existen tres tipos de parsers LR: SLR (K), LALR (K) y LR (K) cannico. Un analizador LR consta de: Un programa conductor Una entrada Una salida Una tabla de anlisis sintctico, compuesta de 2 partes (ACCIN Y GOTO) Cabe acotar que el programa conductor es siempre igual, solo variando para cada lenguaje la tabla de anlisis sintctico. El algoritmo para reconocer cadenas es el siguiente: dado el primer carcter de la cadena y el estado inicial de la tabla, buscar qu accin corresponde en la tabla de accin. Si el estado es shift n (n N), se coloca el carcter y el nmero de estado n en la pila, se lee el siguiente carcter y repite el procedimiento, solo que esta vez buscamos en el estado correspondiente. SI ACCIN = REDUCE n (n N), se sacan de la pila tantas tuplas (estado, smbolo) como el largo de la cola de la produccin en el n-simo lugar, y se reemplaza por la cabeza de esta produccin. El nuevo estado sale de buscar en la tabla GOTO usando para ubicarlo el nmero de estado que quedo en el tope de la pila, y el no terminal en la cabeza. En la tabla accin tambin encontraremos ACEPTAR que se toma la cadena como valida y se termina el anlisis o ERROR que se rechaza la cadena.
COMO FUNCIONA UN ANALIZADOR SINTACTICO ASCENDENTE LR Para generar un autmata LR(0) en base a una gramtica G, primero se debe definir: Gramtica ampliada: Dado una gramtica G, se define la gramtica ampliada G'a: 1. Se agrega una produccin S'->S# donde S es el smbolo inicial.(el # representa el fin de cadena) 2. Se pasan todas las producciones a tems de configuracin (veremos este concepto en un instante) con el punto al principio de la cola 3. Se define S' como el smbolo inicial de la gramtica. tem de configuracin: un tem de configuracin es una produccin que tiene un carcter especial (generalmente un punto) en algn lugar de la cola. Por ejemplo: la produccin S->ABC genera los siguientes tems,{ S->.ABC, S->A.BC, S->AB.C S- >ABC.}. Como veremos en un instante, y hablando informalmente el punto representa el lugar actual en donde me puedo encontrar en un momento en el parseo en una produccin. Clausura de un tem: se define a la clausura de un tem (y de forma informal) a: dado un tem S->A.cB (A, B e V*, c e Vt unin VN) al conjunto formado por 1. S->A.cB 2. Si c es un no terminal, se agregan todos los tems que tengan a c como cabeza de la produccin y el punto al principio de la cola, 3. Si p es un tem que pertenece a la clausura, la clausura de p pertenece a la clausura, siempre y cuando ya no este agregada. En otras palabras, y para que se entienda el concepto, la clausura de un tem representa todas las producciones que se pueden aplicar a una cadena valida a partir del punto del tem. Finalmente, la construccin del autmata es as: 1. Se ampla la gramtica 2. Dado el smbolo inicial de la gramtica ampliada, se calcula su clausura y este se define como un estado inicial. 3. Para cada estado: se agrupan las producciones segn el carcter que est despus del punto, si todava no se defini el estado, se corre el punto un carcter a la derecha, se crea el nuevo estado con esta producciones, y la clausura de cada una de ellas, se define el carcter que estaba despus del punto en el estado de origen como el carcter de la transicin. 4. Si el estado tiene en alguna produccin el punto al final, este estado se marca como un estado final del autmata. 5. Se sigue hasta que ya no se tenga ms estados nuevos posibles. Estrictamente hablando, el autmata LR es un autmata determinista, aunque, en general, su utilidad radica en ser la base para la construccin de la tabla LR(0).
Definiciones Un Gradiente de Presión Expresa Los Incrementos Del Fluido Del Reservorio en La Presión en Relación Con Un Determinado Aumento en La Profundidad