Methods for systems and software engineering have steadily improved, but are being outrun by rapidly increasing system complexity. Much of this complexity is caused by the increasing parallelism (concurrency) and ubiquity (embeddedness) of systems. In this project, called ConAn (for CONcurrency ANalysis), we focus on design and analysis methods for concurrent software.
Concurrent programming is the area of software development where even experts make subtle programming errors. Furthermore, concurrent programs are difficult to debug and test, because their behavior is nondeterministic and therefore irreproducible. We will focus on three specific areas: first, we will develop a verification tool for concurrent data structure implementations. Second, we will leverage the verification models and algorithms to develop synthesis methods for concurrent programs which are correct by construction. Third, we will develop a more
quantitative analysis based on a flexible performance model for concurrent programs which is suitable for formal analysis of programs, as well as theory, algorithms and tools based on this model. The model will allow us to make the output of the verification tool more informative and to synthesize concurrent programs with better performance.
Fields of science
Call for proposal
See other projects for this call