Verification of Concurrent Programs with Chalice

  • Authors:
  • K. Rustan Leino;Peter Müller;Jan Smans

  • Affiliations:
  • Microsoft Research, Redmond, USA;ETH Zurich, Switzerland;KU Leuven, Belgium

  • Venue:
  • Foundations of Security Analysis and Design V
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

A program verifier is a tool that allows developers to prove that their code satisfies its specification for every possible input and every thread schedule. These lecture notes describe a verifier for concurrent programs called Chalice.Chalice's verification methodology centers around permissions and permission transfer. In particular, a memory location may be accessed by a thread only if that thread has permission to do so. Proper use of permissions allows Chalice to deduce upper bounds on the set of locations modifiable by a method and guarantees the absence of data races for concurrent programs. The lecture notes informally explain how Chalice works through various examples.