The public defence of Husni Khanfar´s licentiate thesis in Computer Science

Datum: 2019-11-27
Tid: 13.15
Plats: room Gamma, MDH Västerås

The public defence of Husni Khanfar´s licentiate thesis in Computer Science will take place at Mälardalen University on November 24 2019 at 13.15 in room Gamma, MDH Västerås.

Title: “Demand-Driven Static Backward Program Slicing Based on Predicated Code Block Graphs”.  

Serial number: 284.

The examining committee consists of Professor Welf Löwe, Linnaeus University; Professor Mariam Kamkar, Linköping University; Professor Görel Hedin, Lund University.  Among the members of the examining committee, Professor Welf Löwe has been appointed the faculty examiner.

Reserve, Associate professor Rikard Lindell, MDH.

Abstract:

Static program analysis is a technique that allows to study the behavior of a software program without running it. This technique is useful in optimizing the software for increased performance, verifying that the software is error-free, and ensuring that the software does exactly what it is intended to do. Note that the software verification is an essential part of the development process for safety-critical software, e.g., the software in the airbag system of a car. Program Slicing is an important static program analysis technique that analyses the software by identifying all those statements that affect a particular statement within the software. Such analysis requires thorough understanding of internal relations between the statements in the software. It is analogous to understanding and analyzing each sentence in a multi-sentence riddle with respect to the rest of the sentences.

The state-of-the-art slicing technique performs many types of unnecessary computations. This becomes a problem in slicing large and complex industrial software that might contain millions of statements, e.g., the software in a modern car. This thesis presents a novel slicing technique called the Predicated-Code block (PCB) based Slicing. The technique extends the state of the art by eliminating the computation of many types of unnecessary information while analyzing a software. The proposed technique is evaluated by performing several experiments, which show that the proposed technique outperforms the existing technique.