Write a Blog >>

Shared-memory concurrent programs are notoriously difficult to write, verify, and debug. Concurrency bugs are as common as concurrent programs themselves, and often arise due to insidious synchronization errors. This makes concurrent programs excellent targets for automated program completion, in particular, for synthesis of synchronization. In this tutorial, we focus on recent advances in automated synchronization synthesis and repair for shared-memory concurrent programs. We first review the basics of concurrent programs and synchronization and then introduce trace-based synchronization synthesis. We describe the state of the art in various facets of trace-based synchronization synthesis, including trace generalization, fix generation and specification methodology. We present a tool demonstration of a trace-based synchronization synthesizer for the domain of device drivers. Finally, we discuss related work, limitations of the presented approaches and potential future work.

This tutorial will consist of two identical sections in order to give as many people as possible the possibility to follow the tutorial.

Mon 18 Jan

POPL-2016-tutorials
14:00 - 15:30: Tutorials - T7: Trace-based Synchronization Synthesis for Concurrent Programs at Room HTC 2
POPL-2016-tutorials145312200000014:00 - 15:30
Talk
POPL-2016-tutorials
16:00 - 17:30: Tutorials - T7: Trace-based Synchronization Synthesis for Concurrent Programs at Room HTC 2
POPL-2016-tutorials145312920000016:00 - 17:30
Talk