Dependent types for low-level programming

  • Authors:
  • Jeremy Condit;Matthew Harren;Zachary Anderson;David Gay;George C. Necula

  • Affiliations:
  • University of California, Berkeley;University of California, Berkeley;University of California, Berkeley;Intel Research, Berkeley;University of California, Berkeley

  • Venue:
  • ESOP'07 Proceedings of the 16th European conference on Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we describe the key principles of a dependent type system for low-level imperative languages. The major contributions of this work are (1) a sound type system that combines dependent types and mutation for variables and for heap-allocated structures in a more flexible way than before and (2) a technique for automatically inferring dependent types for local variables. We have applied these general principles to design Deputy, a dependent type system for C that allows the user to describe bounded pointers and tagged unions. Deputy has been used to annotate and check a number of real-world C programs.