Abstract
Este proyecto trata de conseguir añadir una nueva funcionalidad a un analizador existente de programas Java. Esta funcionalidad consiste en la capacidad del analizador de soportar llamadas a métodos (es decir, pasar de una versión “intraprocedural” a una “interprocedural”). De esta forma el analizador será capaz de analizar programas que involucren la interacción entre distintos métodos, cosa que hasta hoy no era posible. La nueva versión sabe distinguir las distintas llamadas a métodos por su contexto y tener así en cuenta el resultado producido por el análisis de los distintos métodos llamados en función de sus datos de entrada.
Para desarrollar esto, se llevó a cabo un estudio previo del marco teórico y las técnicas de Análisis Estático, especialmente la teoría de la Interpretación Abstracta, utilizada en el analizador ya existente. Además, se ha estudiado las distintas técnicas utilizadas para calcular el contexto de las llamadas a métodos. También se ha hecho un estudio sobre la plataforma Chord utilizada para implementar el análisis. Tras los estudios previos se realizó la implementación de la nueva funcionalidad. El desarrollo de este trabajo ha sido positivo ya que se ha conseguido que funcione correctamente para unos casos de prueba.---ABSTRACT---This project tries to achieve adding a new functionality to an analyzer of Java programs. This functionality consists of the capacity of the analyzer to allow multiple calls to methods (i.e., from intraprocedural to interprocedural). In such manner, the analyzer could be able to analyze programs that involve interactions between distinct methods, which was not possible before. The new version knows to distinguish different calls to methods by their context and take the produced result in account depending on their inputs data.
For that, it was done a previous study of the theoretical background and the techniques of Static Analysis, especially Analysis by Abstract Interpretation technique, used in the current analyzer. Moreover it was studied the distinct techniques used for calculating the context of the calls to methods. Also it has been done a study of the platform Chord used for implement the analysis. After the previous studies, it is made the implementation of the new functionality. The development of this project has been positive because it achieved that it works fine with a few little tests.