analisis sintactico

Páginas: 5 (1178 palabras) Publicado: 25 de septiembre de 2013
Instituto Tecnológico de Costa Rica

Ingeniería en Computadores

Curso:
Lenguajes, Compiladores e Interpretes

Código:
CE3104

Profesor:
Jaime Gutierrez Alfaro

Estudiante:
Agustín Castillo Picado

Tema:
Análisis Sintáctico

Análisis Sintáctico descendente
Este algoritmo analiza una cadena de tokens de entrada mediante la búsqueda de los pasos en
una derivación por laizquierda. Es descendente debido a que el recorrido del árbol de análisis
gramatical es en preorden desde la raíz hacia las hojas. Estos analizadores existen en dos
formas, los inversos y los predictivos. El predictivo intenta predecir la siguiente construcción en la
cadena de entrada mientras que el inverso intenta las diferentes posibilidades.
Método básico descendente recursivo
La idea esobservar la regla gramatical para un no terminal A como una definición para un
procedimiento que reconocerá una A. El lado derecho de la regla gramatical para A especifica la
estructura del código para este procedimiento: la secuencia de terminales y no terminales en una
selección corresponde a concordancias de la entrada y llamadas a otros procedimientos, mientras
que las selecciones corresponden alas alternativas dentro del código
En este tipo de analizador la mayoría de procedimientos deben ser capaces de llamarse entre si,
pero escribir procedimientos descendientes recursivos no siempre es fácil y requiere el uso de
EBNF (uso de llaves) para la repetición y selección, ya que esta notación esta diseñada para
reflejar muy de cerca el código real de un analizador sintáctico descendenterecursivo. Ademas la
gramática. es ambigua se debe aplicar la regla de eliminación de la ambigüedad mas
cercanamente anidada.
Método básico del análisis sintáctico LL(1)
El nombre se debe a que se procesa de izquierda a derecha (Left-to-right) y se produce una
derivación por la izquierda (Leftmost derivation), mientras que el numero 1 indica que se utiliza un
símbolo. de inicio en adelante.Este método utiliza una pila en vez de llamadas recursivas.
Comienza al insertar el símbolo. inicial sobre la pila y acepta una cadena de entrada si, después
de una seria de acciones, la pila y la entrada se quedan vacías. Luego remplaza un no terminal
en la parte superior de la pila por una de las selecciones en la regla gramatical para ese no
terminal, después hace concordar un token en laparte superior de la pila con el siguiente token de
entrada y los desecha a ambos sacándolos de la pila y avanzando a la entrada.
Para este método se utiliza una tabla de análisis sintáctico LL(1) la cual es un arreglo
bidimensional indizado por no terminales y terminales que contienen opciones de producción a
emplear en el paso apropiado del análisis. Al igual que en el método recursivo lagramática. no
puede ser ambigua.
A la hora de la repetición y selección no se puede aplicar EBNF sino que se debe aplicar las
siguientes técnicas: eliminación de recursion por la izquierda, la cual se usa para hacer
operaciones asociativas por la izquierda, y la factorización por la izquierda, que se utiliza cuando
dos o mas opciones de reglas gramaticales comparten una cadena de prefijo común.Recuperación de errores
Consideraciones importantes en la recuperación de errores son las siguientes:
*Determinar que ha ocurrido un error tan pronto como fuera posible.
*Seleccionar un lugar probable para reanudar el análisis luego de encontrar un error.
*Intentar evitar el problema de cascada de errores.
*Debe evitar bucles infinitos en los errores.
Recuperación en el análisisdescendente recursivo: se usa el modo de alarma, consiste en dar
a cada procedimiento recursivo un parámetro extra compuesto de un conjunto de tokens de
sincronizacion, si encuentra un error, explora hacia delante desechando los tokens hasta que ve
en la entrada uno de los tokens de sincronizacion en donde se reanuda el análisis sintáctico.
Recuperación en el análisis LL(1): se usa el modo alarma pero...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analisis Sintactico
  • analisis sintactico
  • Análisis Sintáctico
  • Analisis sintactico
  • Análisis Sintáctico
  • Análisis sintáctico
  • Analisis Sintactico
  • ANALISIS SINTACTICO

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS