Checking and inferring local non-aliasing

Alex Aiken, Jeffrey S. Foster, John Kodumal, Tachio Terauchi

Research output: Contribution to journalConference article

9 Citations (Scopus)

Abstract

In prior work [15] we studied a language construct restrict that allows programmers to specify that certain pointers are not aliased to other pointers used within a lexical scope. Among other applications, programming with these constructs helps program analysis tools locally recover strong updates, which can improve the tracking of state in flow-sensitive analyses. In this paper we continue the study of restrict and introduce the construct confine. We present a type and effect system for checking the correctness of these annotations, and we develop efficient constraint-based algorithms implementing these type checking systems. To make it easier to use restrict and confine in practice, we show how to automatically infer such annotations without programmer assistance. In experiments on locking in 589 Linux device drivers, confine inference can automatically recover strong updates to eliminate 95% of the type errors resulting from weak updates.

Original languageEnglish
Pages (from-to)129-140
Number of pages12
JournalACM SIGPLAN Notices
Volume38
Issue number5
DOIs
Publication statusPublished - 2003 May
EventProceedings of the ACM Sigplan 2003 Conference on Programming Language Design and Implementation - San Diego, CA, United States
Duration: 2003 Jun 92003 Jun 11

    Fingerprint

Keywords

  • Alias analysis
  • Confine
  • Constraints
  • Effect inference
  • Flow-sensitivity
  • Linux kernel
  • Locking
  • Restrict
  • Type qualifiers
  • Types

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design

Cite this