Results 1 
1 of
1
Proving Memory Management Invariants for a Language Based on Linear Logic
 In LISP and Functional Programming
, 1992
"... : We develop tools for the rigorous formulation and proof of properties of runtime memory management for a sample programming language based on a linear type system. Two semantics are described, one at a level of observable results of computations and one describing linear connectives in terms of me ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
: We develop tools for the rigorous formulation and proof of properties of runtime memory management for a sample programming language based on a linear type system. Two semantics are described, one at a level of observable results of computations and one describing linear connectives in terms of memorymanagement primitives. The two semantics are proven equivalent and the memorymanagement model is proven to satisfy fundamental correctness criteria for reference counts. 1 Introduction Although much literature on optimization of programs discusses the interaction of program execution and memory management, one does not often find formal statements and proofs regarding this interaction. For instance, a compiler for a functional language may generate code that updates an array inplace instead of copying the entire array, even though this optimization is not always safe. The compiler writer probably does not prove the optimization is safe: the size and complexity of real compilers is on...