|
Abstract : |
We present a Java-like language in which objects are explicitly put in regions. The language has constructs for allocating, updating and deallocating regions, as well as region types for objects. For this language we present a static semantics ensuring that well-typed programs use regions safely, and we present a dynamic semantics that is intentional with respect to a region-based store. We formulate and prove a soundness theorem stating that well-typed programs do not go wrong. Finally, we develop a concrete model for implementing regions, and we compare this model to garbage collection for small examples. Preface When we rst started working on this thesis, in January 1998, we expected to do a fairly programming intensive project. We expected to do a lot of experimenting with Java, and we had hoped to implement a prototype compiler for Java with region-based memory management. As we began to get a notion of the diOEculty of the task, our questions changed from iHow can we do this?j to iCan this be done at all?j. We then started an intensive investigation of how to dene a subset of Java that uses regions explicitly., |