Skip to main content
European Commission logo
español español
CORDIS - Resultados de investigaciones de la UE
CORDIS

Verification-Aware Programming Language Concurrency Semantics

Descripción del proyecto

Verificación de lenguajes de programación concurrente de uso general y emergentes

El objetivo fundamental del proyecto VAPLCS, financiado con fondos europeos, es desarrollar un nuevo modelo para describir formalmente la semántica de programas concurrentes. El modelo debería permitir una aplicación sencilla, ofrecer garantías fáciles de utilizar, ser suficientemente sólido para algoritmos concurrentes y aceptar modificaciones para una verificación modulable. Para ello, los investigadores aprovecharán el trabajo que realizaron recientemente para abordar las carencias del modelo de concurrencia C/C++ y en la comprobación de modelos en ciertas semánticas de concurrencia débil. Además, desarrollarán métodos de verificación práctica para facilitar la programación concurrente. Los resultados del proyecto deberían aumentar significativamente la aplicabilidad de la verificación, salvar una importante laguna entre la investigación de verificación y la programación concurrente práctica, y arrojar luz sobre la función de la semántica subyacente.

Objetivo

"With the proliferation of multi-core processors, concurrent programming regularly appears at the core of heavily relied-upon systems, where both performance and correctness are of paramount importance. The canonical concurrency model is sequential consistency-identifying concurrent programs with all possible interleavings of operations of their constitute threads. It is a simple model for programmers, but unsatisfactory as a programming language concurrency semantics. First, performance-wise, it is too costly to implement. In fact, no commodity hardware provides sequential consistency. Second, the number of interleavings is often so large, posing the infamous ""state explosion problem"" as the utmost obstacle to any verification attempt.

Our overarching goal is to develop a novel concurrency semantics for programming languages that will: allow efficient implementation; provide easily usable guarantees, sufficiently strong for concurrent algorithms; and be amenable to scalable verification. To achieve this, we will leverage our recent advances in addressing the flaws in the C/C++ and Java specifications and in model checking under certain weak concurrency semantics. Moreover, we will develop practical verification methods to facilitate the task of concurrent programming.

This proposal makes a conceptual leap beyond the state-of-the-art, by identifying the development of a weak concurrency semantics not only as an unfortunate necessity, but also as an opportunity to revolutionize software verification. It is high-risk: it tackles a longstanding open problem in programming languages. It is also high-gain: it will significantly increase the applicability of verification, bridge a major gap between verification research and practical concurrent programming, and shed light on the role of the underlying semantics. I aim for the proposed concurrency semantics to provide new foundations for the specifications of mainstream and emerging programming languages.
"

Régimen de financiación

ERC-STG - Starting Grant

Institución de acogida

TEL AVIV UNIVERSITY
Aportación neta de la UEn
€ 1 449 528,00
Coste total
€ 1 449 528,00

Beneficiarios (1)