Your SlideShare is downloading. ×
Cap4 Analisis Sintactico
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Cap4 Analisis Sintactico

6,210
views

Published on

Se presentan las diferentes estrategias de recuperación de errores que pueden utilizarse en el análsis sintáctico.

Se presentan las diferentes estrategias de recuperación de errores que pueden utilizarse en el análsis sintáctico.

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
6,210
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
152
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Análisis Sintáctico Capítulo 4 Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores
  • 2. Analizador Sintáctico Analizador Léxico Analizador sintáctico Tabla de Símbolos Componente Léxico (Token) GetNextToken() Programa Fuente Arbol de Análisis Sintáctico Resto de Etapa Inicial Código Intermedio
  • 3. Errores
    • Léxicos
      • Escribir mal algo (fi en lugar de if)
    • Sintácticos
      • Paréntesis no equilibrados
      • If sin Then
    • Semáticos
      • Llamada a función con parámetros de tipo incorrecto
    • Lógicos
      • Recursión infinita
      • Run time error
  • 4. Errores Sintácticos
    • Objetivos
      • Informar de los errores con claridad
        • Lugar donde ocurrió el error
      • Recuperarse de los errores
        • Varias estrategias
      • No retrasar el análisis en programas correctos
  • 5. Programa ejemplo
    • Program impmax(input, output);
    • Var
    • x, y : integer;
    • Function max(i: integer; j: integer) : integer;
    • {devuelve el máximo de los enteros i y j}
    • Begin
    • if i > j then max := i
    • else max := j
    • End;
    • Begin
    • readln(x,y);
    • writeln(max(x,y))
    • End.
  • 6. Estrategias de recuperación de errores
    • En modo de pánico
    • A nivel de frase
    • De producciones de error
    • De corrección global
  • 7. En modo de pánico
    • Se descubre el error
    • Se desechan símbolos de entrada
    • Se llega a un componente de sincronización
      • ; end loop then
      • Se debe definir cuáles se usarán
    • Puede desechar gran parte de la entrada
    • Garantiza recuperación
  • 8. A nivel de frase
    • Identificar prefijo para la entrada restante
    • Ejemplo
      • If while not true then ...
      • Entrada restante: not true then...
      • Prefijo identificable: if
      • Corrección: if not true then ...
    • Difícil de implementar
  • 9. Producciones de error
    • Se identifican patrones de error
    • Se incluyen producciones para esos patrones
    • Si la producción se usa...
      • Corregir en reglas semánticas
    • Modificar la gramática
  • 10. Corrección Global
    • Identificar todas las posibles variaciones
    • Evaluar la mínima
    • Utilizarla