In this thesis we present a computer-aided programming approach to concurrency. Our approach helps the programmer by automatically fixing concurrency-related bugs, i.e. bugs that occur when the program is executed using an aggressive preemptive scheduler, but not when using a non-preemptive (cooperative) scheduler. Bugs are program behaviours that are incorrect w.r.t. a specification. We consider both user-provided explicit specifications in the form of assertion statements in the code as well as an implicit specification. The implicit specification is inferred from the non-preemptive behaviour. Let us consider sequences of calls that the program makes to an external interface. The implicit specification requires that any such sequence prod...
Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the depen...
Modern concurrent programming benefits from a large variety of synchronization techniques. These inc...
Compared to coarse-grained external synchronization of operations on data structures shared between ...
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps t...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
Abstract. We develop program synthesis techniques that can help pro-grammers fix concurrency-related...
We develop program synthesis techniques that can help programmers fix concurrency-related bugs. We m...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
While fixing concurrency bugs, program repair algorithms may introduce new concurrency bugs. We pres...
Concurrency control in modern programming languages is typically managed using mechanisms based on m...
Abstract. While fixing concurrency bugs, program repair algorithms may introduce new concurrency bug...
This paper received a Best Paper Award at EuroSys 2023International audienceKnowing which functions ...
AbstractIn this methodology, programming problems which can be specified by an input/output assertio...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
The synchronous principle is a well-established paradigm for reconciling concurrency with determinis...
Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the depen...
Modern concurrent programming benefits from a large variety of synchronization techniques. These inc...
Compared to coarse-grained external synchronization of operations on data structures shared between ...
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps t...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
Abstract. We develop program synthesis techniques that can help pro-grammers fix concurrency-related...
We develop program synthesis techniques that can help programmers fix concurrency-related bugs. We m...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
While fixing concurrency bugs, program repair algorithms may introduce new concurrency bugs. We pres...
Concurrency control in modern programming languages is typically managed using mechanisms based on m...
Abstract. While fixing concurrency bugs, program repair algorithms may introduce new concurrency bug...
This paper received a Best Paper Award at EuroSys 2023International audienceKnowing which functions ...
AbstractIn this methodology, programming problems which can be specified by an input/output assertio...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
The synchronous principle is a well-established paradigm for reconciling concurrency with determinis...
Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the depen...
Modern concurrent programming benefits from a large variety of synchronization techniques. These inc...
Compared to coarse-grained external synchronization of operations on data structures shared between ...