Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorPrasetya, Wishnu
dc.contributor.authorVliet, Daniel van
dc.date.accessioned2023-08-10T00:02:25Z
dc.date.available2023-08-10T00:02:25Z
dc.date.issued2023
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/44565
dc.description.abstractSymbolic 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.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectIn 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.titleA Heuristic Approach to the Path Explosion Problem for Complex Heap Programs
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordsSymbolic Execution;Heuristic;Complex Heap programs;Inheritance;OOX;Program Analysis;Path explosion;
dc.subject.courseuuComputing Science
dc.thesis.id21333


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record