Font Size: a A A

Managing memory with types

Posted on:2003-02-05Degree:Ph.DType:Dissertation
University:Princeton UniversityCandidate:Wang, Daniel Chen-AnFull Text:PDF
GTID:1468390011982699Subject:Computer Science
Abstract/Summary:
Important programming language features require specific memory-management techniques. General recursion requires the automatic stack allocation of local variables. Higher-order functions and object-oriented techniques require sophisticated services such as garbage collection to manage memory. When memory is a scare resource it is important for the programmer to explicitly control, memory management. Unfortunately, a programmer can accidentally destroy important program properties and violate the integrity of the program through memory management related errors.; By using modern type systems, we can expose low-level memory management services to programmers and type-preserving compilers in a way that still guarantees the integrity of the program. We can build more sophisticated memory management services by using these low-level services in a way that provides useful guarantees about program integrity.; I combine existing type systems with several standard type-based compilation techniques to write strongly typed programs that include a function that acts as a tracing garbage collector for the program. Since the garbage collector is an explicit function, there is no need to provide a trusted garbage collector as a runtime service to manage memory. Since the language is strongly typed, the standard type soundness guarantee “Well typed programs do not go wrong” is extended to include the collector, making the garbage collector an untrusted piece of code. This is a desirable property for both Java and proof-carrying code systems.; I describe the technique in detail and report performance measurements for a prototype system as well as present the proofs of type soundness for important subsets of our system, and describe how to use types as a mechanism to manage memory in explicit and safe ways.
Keywords/Search Tags:Memory, Type, Program, Garbage collector
Related items