implementación de una metodología de reparación de errores ...csaavedra/documents/... ·...
TRANSCRIPT
Implementación de una metodología de reparaciónde errores sintácticos para el generador de
analizadores sintácticos GNU BisonMemoria de Título
Claudio Saavedra
Facultad de IngenieríaUniversidad de Talca
Curicó – Chile
27 de marzo de 2008
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 1 / 46
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 2 / 46
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 3 / 46
Introducción y motivación
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 4 / 46
Introducción y motivación Contexto
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 5 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Contexto
Análisis sintácticoVisión general
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 6 / 46
Introducción y motivación Motivación
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 7 / 46
Introducción y motivación Motivación
Errores sintácticos
Un error sintáctico se produce cuando se detecta una construcciónque no pertenece al lenguaje
Ejemplox * (/ 12 - x) no es una expresión algebraica válida
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 8 / 46
Introducción y motivación Motivación
¿Qué hacer ante la presencia de un error?Tratamiento de errores sintácticos
Diagnóstico: Informar al usuario sobre la presencia del errorRecuperación: Intentar continuar el análisis para detectar otros
erroresReparación: Idealmente, corregir el error automáticamente
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 9 / 46
Introducción y motivación Motivación
Estado del arte en generadoresTratamiento de errores sintácticos
Software diagn. recup. repar.yacc
√ √×
Bison√ √
×ml-yacc
√ √ √
JavaCC√ √
×ANTLR
√ √×
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 10 / 46
Introducción y motivación Motivación
Tratamiento de errores en BisonTratamiento de errores sintácticos
Consiste en una recuperación en modo de pánicoPara un mejor funcionamiento, el usuario necesita adaptar sugramática de entradaNo hay corrección automática de errores
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 11 / 46
Introducción y motivación Motivación
Algunas preguntasTratamiento de errores sintácticos
¿Puede el diagnóstico ser exacto si se desconoce cómo corregirel error?¿Es cómodo para los usuarios adaptar sus gramáticas parapermitir un mejor manejo de los errores?¿Podemos hacer algo para mejorar la situación actual?
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 12 / 46
Introducción y motivación Motivación
Corrección automática de erroresTratamiento de errores sintácticos
Existen metodologías que permiten reparar automáticamente loserroresLa reparación consiste en la modificación de la entrada en unpunto alrededor del token de errorBurke y Fisher (1987) propusieron una metodología interesante:eficiente, flexible, independiente del lenguaje
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 13 / 46
Introducción y motivación Contribuciones
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 14 / 46
Introducción y motivación Contribuciones
En esta memoria..
Implementamos reparación automática de errores para losanalizadores generados por Bison, inspirados en la metodologíade Burke-FisherProveemos de un diagnóstico de errores de alta calidadAñadimos interfaces apropiadas para el uso de estascaracterísticas
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 15 / 46
Análisis sintáctico
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 16 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Consideremos la gramática definida por las siguientes producciones
GramáticaExpr→ Suma ;Suma → Num + SumaSuma → Num
y el análisis de la entrada 45 + 18 ;
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 17 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Entrada45 + 18 ;
Pila de estadoss0
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Entrada45 + 18 ;
Pila de estadoss0s1
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Entrada45 + 18 ;
Pila de estadoss0s1s4
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Entrada45 + 18 ;
Pila de estadoss0s1s4s1
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
Entrada45 + 18 ;
Pila de estadoss0s3
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
EntradaSuma ;
Pila de estadoss0s3s6
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
EntradaSuma ;
Pila de estadoss0s2
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Análisis sintáctico
Ejemplo de análisis sintáctico
EntradaExpr
Pila de estadoss0s2
Desplazamiento de 45Desplazamiento de +Desplazamiento de 18Reducción de 45 + 18Desplazamiento de ;Reducción de Suma ;Aceptación
GramáticaExpr → Suma ;Suma → Num + SumaSuma → Num
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 18 / 46
Reparación automática de errores en Bison
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 19 / 46
Reparación automática de errores en Bison Implementación
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 20 / 46
Reparación automática de errores en Bison Implementación
Recuperación de errores de Burke-FisherCaracterísticas generales
Consiste en tres técnicas de reparación: simple, de ámbito,secundariaLa recuperación simple consiste en la eliminación, inserción osustitución de un token por otroLa recuperación de ámbito consiste en la inserción de unasecuencia de tokens que cierre un ámbito (e.g., end if ; oend while ;)La recuperación secundaria consiste en la eliminación de unfragmento de código
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 21 / 46
Reparación automática de errores en Bison Implementación
Postergación del análisis
Algunas correcciones requieren deshacer parte del análisis(costoso, complejo)Burke-Fisher introduce una metodología de postergación delanálisis sintáctico para simular la capacidad de deshacer elanálisis de k tokensk es un parámetro ajustable por el usuario
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 22 / 46
Reparación automática de errores en Bison Implementación
Búsqueda de una reparación simple
Para la reparación simple, buscamos reparaciones candidatassobre los k tokens postergados y el token de errorLas reparaciones candidatas deben permitir un análisis por sobrecierta cantidad de tokensLa reparación a aplicar se elige mediante una heurística deselección sobre las candidatasEsta heurística requiere información adicional sobre el lenguaje:sustituciones preferidas; tokens preferidos para eliminación einserción; y palabras claves del lenguaje
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 23 / 46
Reparación automática de errores en Bison Implementación
Reparación de ámbito
Si la reparación simple falla, invocamos la reparación de ámbitoIntentamos cerrar algún ámbito mediante inserción de unasecuencia cerradora en los mismos puntos donde se buscó unareparación simpleCada secuencia cerradora es especificada por el usuariomediante una directiva añadida a BisonSi falla, invocamos la recuperación secundaria en modo de pánico
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 24 / 46
Reparación automática de errores en Bison Interfaces de usuario
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 25 / 46
Reparación automática de errores en Bison Interfaces de usuario
Parámetros y directivas
ParámetrosYYDEFERRAL_LEVEL: Nivel de postergación k (por defecto, 2)YYERROR_MIN_THRESHOLD: Equivalente a tmin (por defecto, 2)YYERROR_THRESHOLD: Equivalente a te (por defecto, 5)
Directivas%keyword: Para indicar las palabras claves del lenguaje%prefer: Tokens preferidos para inserción o eliminación%subst: Sustitución preferida para un token
%closer: Especifica cada secuencia de tokens cerradores
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 26 / 46
Reparación automática de errores en Bison Interfaces de usuario
Funciones
Diagnósticovoid yydiagnosis (const char const *message);
Con message una especificación textual de la corrección.
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 27 / 46
Reparación automática de errores en Bison Interfaces de usuario
Funciones
Diagnósticovoid yydiagnosis (const char const *message);
Con message una especificación textual de la corrección.
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 27 / 46
Resultados experimentales
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 28 / 46
Resultados experimentales Calidad de las reparaciones
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 29 / 46
Resultados experimentales Calidad de las reparaciones
Evaluación
Construimos tres analizadores sintácticos para distintoslenguajes: Una calculadora, Pascal y Ada 95Corrimos los analizadores sobre distintos programas erróneosCategorizamos las reparaciones como excelentes, buenas,pobres y errores no corregidos
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 30 / 46
Resultados experimentales Calidad de las reparaciones
Calculadora sencilla
Ejecutadas 20 pruebas, con un total de 24 errores sintácticos:
Excelente Buena Pobre No Corregido13 8 0 3
54.2 % 33.3 % 0 % 12.5 %
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 31 / 46
Resultados experimentales Calidad de las reparaciones
Analizador para Pascal
Ejecutadas 20 pruebas, con un total de 45 errores sintácticos:
Excelente Buena Pobre No Corregido38 1 2 4
84.4 % 2.2 % 4.4 % 8.9 %
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 32 / 46
Resultados experimentales Calidad de las reparaciones
Analizador para Ada 95
Ejecutada una prueba, con un total de 32 errores sintácticos:
Excelente Buena Pobre No Corregido17 2 1 12
53.3 % 6.2 % 3.1 % 37.5 %
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 33 / 46
Resultados experimentales Calidad de las reparaciones
Observaciones
Un grado de postergación k > 3 no mejora la calidad de lasreparacionesMúltiples errores consecutivos pueden ser problemáticos para larecuperación de ámbito y secundaria
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 34 / 46
Resultados experimentales Algunos ejemplos
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 35 / 46
Resultados experimentales Algunos ejemplos
Calculadora sencilla
Expresión con un error) (234 + 1);
Unexpected ’)’ ignoredOperation in 1.3-1.13: result is 235
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 36 / 46
Resultados experimentales Algunos ejemplos
Calculadora sencilla
Expresión con un error) (234 + 1);
Unexpected ’)’ ignoredOperation in 1.3-1.13: result is 235
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 36 / 46
Resultados experimentales Algunos ejemplos
Calculadora sencilla
Expresión con un error(234 + 1);
Unexpected ’)’ ignoredOperation in 1.3-1.13: result is 235
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 36 / 46
Resultados experimentales Algunos ejemplos
En Pascal
Código con 2 errores simplesprogram p(input, output);var key, record : array [1..limit] if integer;begin
x := 1end.
Warning: IDENTIFIER expected instead of RECORDWarning: OF expected instead of IF
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 37 / 46
Resultados experimentales Algunos ejemplos
En Pascal
Código con 2 errores simplesprogram p(input, output);var key, record : array [1..limit] if integer;begin
x := 1end.
Warning: IDENTIFIER expected instead of RECORDWarning: OF expected instead of IF
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 37 / 46
Resultados experimentales Algunos ejemplos
En Pascal
Código con 2 errores simplesprogram p(input, output);var key, some_id : array [1..limit] if integer;begin
x := 1end.
Warning: IDENTIFIER expected instead of RECORD
Warning: OF expected instead of IF
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 37 / 46
Resultados experimentales Algunos ejemplos
En Pascal
Código con 2 errores simplesprogram p(input, output);var key, some_id : array [1..limit] if integer;begin
x := 1end.
Warning: IDENTIFIER expected instead of RECORD
Warning: OF expected instead of IF
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 37 / 46
Resultados experimentales Algunos ejemplos
En Pascal
Código con 2 errores simplesprogram p(input, output);var key, some_id : array [1..limit] of integer;begin
x := 1end.
Warning: IDENTIFIER expected instead of RECORDWarning: OF expected instead of IF
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 37 / 46
Resultados experimentales Algunos ejemplos
En Ada 95
Código con error de ámbitoprocedure P isbegin
loopif Y < 0 then Z := 3;
end loop;end P;
line 5: END IF ’;’ inserted
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 38 / 46
Resultados experimentales Algunos ejemplos
En Ada 95
Código con error de ámbitoprocedure P isbegin
loopif Y < 0 then Z := 3;
end loop;end P;
line 5: END IF ’;’ inserted
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 38 / 46
Resultados experimentales Algunos ejemplos
En Ada 95
Código con error de ámbitoprocedure P isbegin
loopif Y < 0 then Z := 3;end if;
end loop;end P;
line 5: END IF ’;’ inserted
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 38 / 46
Resultados experimentales Análisis de desempeño
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 39 / 46
Resultados experimentales Análisis de desempeño
Metodología
Tiempo de ejecución (mediante gprof y gcov):Comparación entre código correcto y erróneoDistintos niveles de postergación del análisisComparación de la implementación original y la nuestra
Uso de memoria (mediante valgrind):Uso de memoria para distintos niveles de postergación v/sanalizador original
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 40 / 46
Resultados experimentales Análisis de desempeño
Tiempo de ejecuciónDesempeño para distintas versiones de un analizador para Ada 95
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 41 / 46
Resultados experimentales Análisis de desempeño
Uso de memoriaComparación para distintas versiones de un analizador para Ada 95
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 42 / 46
Conclusiones
Contenidos
1 Introducción y motivaciónContextoMotivaciónContribuciones
2 Análisis sintáctico
3 Reparación automática de errores en BisonImplementaciónInterfaces de usuario
4 Resultados experimentalesCalidad de las reparacionesAlgunos ejemplosAnálisis de desempeño
5 Conclusiones
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 43 / 46
Conclusiones
Lo que conseguimos
Adaptar la técnica de Burke-Fisher a la naturaleza de BisonCorregir satisfactoriamente la mayoría de los errores sintácticospresentes en programas para distintos lenguajesPosibilitar la entrega de un diagnóstico de errores de alta calidadSeparar el ajuste de la metodología de recuperación de erroresde la especificación del lenguaje
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 44 / 46
Conclusiones
Trabajo futuro
Permitir la búsqueda (¿recursiva?) de múltiples errores de ámbitoconsecutivosImplementar una reparación secundaria más precisaOptimizar la implementaciónGenerar automáticamente las secuencias cerradoras de tokens(Charles, 1991)Publicar los detalles de la implementación y resultados en unreporte técnico útil para desarrolladores y usuarios de BisonIntegrar el código con una próxima versión de Bison
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 45 / 46
Conclusiones
Discusión..
Claudio Saavedra (UTalca) Reparación automática de errores en Bison 27 de marzo de 2008 46 / 46