• DocumentCode
    2023381
  • Title

    Certifying compilation for a language with stack allocation

  • Author

    Jia, Limin ; Spalding, Frances ; Walker, David ; Glew, Neal

  • Author_Institution
    Princeton Univ., NJ, USA
  • fYear
    2005
  • fDate
    26-29 June 2005
  • Firstpage
    407
  • Lastpage
    416
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Logic in Computer Science, 2005. LICS 2005. Proceedings. 20th Annual IEEE Symposium on
  • ISSN
    1043-6871
  • Print_ISBN
    0-7695-2266-1
  • Type

    conf

  • DOI
    10.1109/LICS.2005.9
  • Filename
    1509246