An Interactive Abstract Interpreter for IntelliJ IDEA

Name
Alex Viil
Abstract
Abstract interpretation is the partial execution of a computer program to better understand how it behaves without having to perform all the calculations otherwise done in a regular run. It’s useful in determining if the program functions as expected. If not, the developer then becomes aware of an issue and can focus on resolving it.
IntelliJ IDEA is an integrated development environment in which developers can write code in the form of the programming language Java, compile it, and execute the resulting instructions. Almost all programs use variables that are assigned values and have their val-ues read. Often the program branches into different parts, and which parts get executed depends on variables. Depending on the quality of the developer’s work, certain situations might arise from an incorrect combination of variable values that can cause an exception or error to occur. Best practice in Java foresees proper handling of such exceptions, but in more complicated systems it’s a lot more difficult to think of every situation.
The aforementioned development environment supports plugins, which are separate development assisting programs. An interactive abstract interpretation program provides the developer with the ability to analyse a program with the help of the static analysis frame-work Põder. In the scope of this bachelor’s thesis, development of such a plugin is investigated, that can conduct simpler property checks. For example, whether an integer variable is bound by certain limits or not.
Graduation Thesis language
Estonian
Graduation Thesis type
Bachelor - Computer Science
Supervisor(s)
Vesal Vojdani
Defence year
2021
 
PDF