Hello,

we have a PhD position opening at Lille, France.
See all details here: https://recrutement.inria.fr/public/classic/fr/offres/2024-07154

Steven.

Summary of the research proposal:

###
Application development inevitably introduces bugs. Often, it's not clear why a code change introduced a bug. To find this cause-and-effect relationship and debug more efficiently, developers can sometimes rely on the existence of a previous version of the code without the bug. Yet, traditional debugging tools are not designed for this kind of work, making it a tedious operation.

In this thesis, we propose an approach that enables us to understand and to debug an application in a live system, such as Pharo or Python, by comparing two executions with different results: one execution succeeds and the other fails.

Based on this hypothesis, we propose in this thesis to answer the following challenges:

- How to detect divergence, i.e. different behavior between two executions of a program?
- How can we reduce the cost in time, memory and energy consumption of detecting divergence(s) on long executions?
- What are the criteria for deciding whether a divergence is normal or unauthorized?
- What about detecting multiple divergences in the same program?
- What abstractions are needed to compare two executions of a program and detect divergences?

��
To meet these challenges, in addition to a precise state-of-the-art on debugging techniques, the PhD student will study concrete cases of program execution and propose a tool to be integrated into Pharo.