Академический Документы
Профессиональный Документы
Культура Документы
Abstract:
Errores de funcionamiento son errores de programacion que relentizacion la
ejecucion de un programa. Mientras que las tecnicas existentes pueden detectar
varios tipos de errores de rendimiento, un aspecto crucial y practico de los
errores de funcionamiento que no ha recibido la atencion que merecen: Qu
posibilidades tienen los desarrolladores para corregir un error? En la practica,
solucionar un error de funcionamiento puede tener tanto ventajas como
invenientes, y desarolladores solo solucionan un error de funcionamiento solo
cuando los beneficios superan a los incovenientes. Desafortunadamente, para
muchos errores de funcionamiento, los beneficios e inconvenientes son
dificiles de evaluar con precision.
Este paper presenta CARAMEL una novedosa tecnica estatica que detecta y
soluciona errores de funcionamiento que tiene soluciones no-intrusivas capaces
de ser adaptadas por los desarrolladores. Cada error de funcionamiento
detectado por CARAMEL se asocia con un bucle y una condicion. Cuando la
condicion se convierte en verdadera durante la ejecucion del bucle, todo el
calculo restante realizado por el bucle se desperdicia. Tipicamente
desarrolladores solucionan dichos errores de rendimiento debido a que esos
errores desperdician calculos en bucles y tienen soluciones no-instrusivas:
cuando alguna condicion se convierte en verdadera dinamicamente, salir del
bucle. Dado un programa, CARAMEL detecta algunos errores de forma
estatica y le da al desarrollador una posible solucin source-level para cada
error. Evaluamos CARAMEL en aplicaciones del mundo-real, incluyendo 11
aplicaciones Java (Groovy, Log4J, Lucene, Struts, Tomcat, etc) y 4
aplicaciones C++ ampliamente usadas (Chromium, GCC, Mozilla, MySql).
CARAMEL encontro 61 nuevos errores de funcionamiento en aplicaciones