The role of exceptions in static program analysis for Java (Η σημασία των εξαιρέσεων στην Στατική Ανάλυση Προγραμμάτων Java)

Postgraduate Thesis uoadl:1321449 398 Read counter

Unit:
Κατεύθυνση / ειδίκευση Διαχείριση Πληροφορίας και Δεδομένων (ΔΕΔ)
Library of the School of Science
Deposit date:
2012-07-11
Year:
2012
Author:
Καστρίνης Γιώργος
Supervisors info:
Σμαραγδάκης Γιάννης Αναπλ. Καθηγητής ΕΚΠΑ
Original Title:
The role of exceptions in static program analysis for Java (Η σημασία των εξαιρέσεων στην Στατική Ανάλυση Προγραμμάτων Java)
Languages:
English
Summary:
Static program analysis is the analysis of computer software that focuses on
the examination
of the source code, without actually executing the program built from that code.
An important subclass of static program analysis is that of Points-To Analysis,
an analysis
that reasons about which objects can flow into which variables, for every
possible program
execution. The points-to results, are fundamental for further, more complex
analyses.
For an analysis like the above to be precise, it has to simulate every aspect
of the source
code and of the underlying system in which the program will be executed, that
can influence
the flow of objects into variables. On the other hand, the results need to be
produced within
a logical timespan for the analysis to be practical. Thus it is crucial that
every overapproximation
made by the analysis is as ‘‘tight’’ as possible.
One important feature of object-oriented languages like Java is that of
exceptions. Previous
work has shown that accurate handling of exceptions can significantly affect the
precision of the results. In this work, we present three alternative ways to
handle exceptions
in Java, as well as the effect each one has over the precision and the
performance of the
resulting analysis. An impressive find is the fact that, instead of recording
each distinct
exception object, we can collapse all exceptions of the same type, and use one
representative
object per type, with barely any loss in precision but at the same time with a
significant boost
in performance (in many analyses achieving more than 20% improvement).
Keywords:
Datalog, Whole-program analysis, Java, Exceptions, Context-sensitivity
Index:
No
Number of index pages:
0
Contains images:
Yes
Number of references:
22
Number of pages:
54
document.pdf (614 KB) Open in new window