Certifying Compilation for a Language with Stack Allocation

  • Authors:
  • Frances Spalding;David Walker

  • Affiliations:
  • Princeton University;Princeton University

  • Venue:
  • LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes an assembly-language type system capable of ensuring memory safety in the presence of both heap and stack allocation. The type system uses linear logic and a set of domain-specific predicates to specify invariants about the shape of the store. Part of the model for our logic is a tree of "stack tags" that tracks the evolution of the stack over time. To demonstrate the expressiveness of the type system, we define Micro-CLI, a simple imperative language that captures the essence of stack allocation in the Common Language Infrastructure. We show how to compile well-typed Micro-CLI into well-typed assembly.