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