dc.rights.license | CC-BY-NC-ND | |
dc.contributor.advisor | Prasetya, Wishnu | |
dc.contributor.author | Vliet, Daniel van | |
dc.date.accessioned | 2023-08-10T00:02:25Z | |
dc.date.available | 2023-08-10T00:02:25Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | https://studenttheses.uu.nl/handle/20.500.12932/44565 | |
dc.description.abstract | Symbolic verification is a verification method for automatically verifying the correctness of programs, by collecting path constraints which are used to assert specifications and invariants using a third-party constraint solver.
In this thesis we have extended OOX, a symbolic verification engine for object oriented programs, with support for subtyping through inheritance and dynamic dispatch, and have implemented a heuristic approach for reducing the path explosion problem. The verification engine operates on programs in the language OOX, which is one of the first intermediate verification languages with support for inheritance.
In the experiments we show that there is an exponential explosion in verification runtime as the number of subtypes of a symbolic object increase in a datastructure.
With the aim to improve on this we have implemented an initial heuristic approach to reduce the path explosion problem, by selecting paths with a criterion. We have implemented heuristics based on maximising code coverage, on randomness and a round-robin combination.
In our evaluation we found that the performance of the heuristic is dependent on the depth of the input program, with our first results showing that the maximising code coverage heuristic is not feasible for smaller programs. | |
dc.description.sponsorship | Utrecht University | |
dc.language.iso | EN | |
dc.subject | In this project we explore heuristic approaches to the path explosion problem in symbolic execution for complex heap programs. Symbolic execution is an analysis tool, we use OOX in this project. Complex heap programs are programs in object oriented languages such as Java and C# that make use of inheritance language features. | |
dc.title | A Heuristic Approach to the Path Explosion Problem for
Complex Heap Programs | |
dc.type.content | Master Thesis | |
dc.rights.accessrights | Open Access | |
dc.subject.keywords | Symbolic Execution;Heuristic;Complex Heap programs;Inheritance;OOX;Program Analysis;Path explosion; | |
dc.subject.courseuu | Computing Science | |
dc.thesis.id | 21333 | |