Refreshments 3:20 p.m.
Abstract
Software is large, complex, and error-prone. The trend in hardware
design of switching to multi-core architectures makes software
development even more complex. Cutting software development costs and
ensuring higher reliability of software is of global interest and a
grand challenge. This is especially true of the system software that
is the foundation beneath all general-purpose application programs.
The verification of system software poses particular challenges:
system software is typically written in a low-level programming
language with dynamic memory allocation and pointer manipulation, and
system software is also highly concurrent, with shared-memory
communication being the main concurrent programming paradigm.
Available verification tools usually perform poorly when dealing with
the aforementioned challenges. In this talk I'll present my research
that addresses these problems by enabling precise and scalable
verification of low-level, shared-memory, concurrent programs.