Title :
Certifying compilation for a language with stack allocation
Author :
Jia, Limin ; Spalding, Frances ; Walker, David ; Glew, Neal
Author_Institution :
Princeton Univ., NJ, USA
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.
Keywords :
assembly language; formal logic; program compilers; storage management; tree data structures; MicroCLI; assembly-language type system; common language infrastructure; linear logic; stack allocation; tree data structures; Assembly systems; Automatic logic units; Computer science; Data structures; High level languages; Memory management; Safety; Shape; System testing; Utility programs;
Conference_Titel :
Logic in Computer Science, 2005. LICS 2005. Proceedings. 20th Annual IEEE Symposium on
Print_ISBN :
0-7695-2266-1
DOI :
10.1109/LICS.2005.9