| Aiken, A., F ahndrich, M., and Levien, R. 1995. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation. ACM Press, La Jolla, California, 174-185. |
....by ensuring that real time threads do not interfere with the garbage collector. One disadvantage with most region based management systems is that they enforce a lexical nesting on region lifetimes; so objects allocated in a given region may become inaccessible long before the region is deleted. [2] presents an analysis that enables some regions to be deleted early, as soon as all of the objects in the region are unreachable. Other approaches include the use of linear types to control when regions are deleted [23, 25] None of these approaches currently support object oriented programs and ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995. 10
....by investigating all execution paths starting at line 10. class L L is a singly linked list public L n; next field public int val; data field class Main Creation and traversal of a singly linked list public static void main(String args[ L x, y, t; 1] x = null; [2] while ( list creation [3] y = new L( 4] y.val = 5] y.n = x; 6] x = y; 7] y = x; 8] while (y = null) list traversal [9] System.out.print(y.val) 10] t = y.n; 11] y = t; Fig. 1. A program for creating and traversing a singly linked list. In order ....
....method returns to its caller. While this technique has shown to be useful, it is limited to objects that do not escape their allocating method. Our technique applies to all program objects, and allows freeing objects before their allocating method returns. In region based memory management [6,31,2,14], the lifetime of an object is predicted at compile time. An object is associated with a memory region, and the alloca tion and deallocation of the memory region are inferred automatically at compile time. It would be interesting to instantiate our framework with a static analysis algorithm for ....
M. F. Alexander Aiken and R. Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 174--185, June 1995.
....by ensuring that real time threads do not interfere with the garbage collector. One disadvantage with most region based management systems is that they enforce a lexical nesting on region lifetimes; so objects allocated in a given region may become inaccessible long before the region is deleted. [2] presents an analysis that enables some regions to be deleted early, as soon as all of the objects in the region are unreachable. Other approaches include the use of linear types to control when regions are deleted [23, 25] None of these approaches currently support object oriented programs and ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995. 10
....Our system extends region types to multithreaded programs by allowing long lived threads to share objects without using the heap and without having memory leaks. Our system extends region types to real time programs by ensuring that real time threads do not interfere with the garbage collector. [2] provides a static analysis to free some regions early to avoid the constraints of LIFO region lifetimes in [37, 36] Capability Calculus [18] proposes a general type system for freeing regions based on linear types. Vault s type system [20] allows a region to be freed before it leaves scope. ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995.
....programs that are compiled into destination passing style. However, Minamide s language is still quite highlevel; he does not show how to verify explicit pointer manipulation. Moreover, neither of these type systems provide the ability to represent cyclic data structures. Tofte, Talpin, and others [39, 5, 2] have explored the use of region based memory management. In their work, objects are allocated into one of several regions of memory. When a region is deallocated, all the objects in that region are deallocated too. Region based memory management performs extremely well in many circumstances, but ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174-185, La Jolla, California, 1995.
....Fax: 49 7612038052, e mail: shelsen computer.org inference for a realistic language. The ML kit does not rely on runtime garbage collection obtain automatic memory management. 1. 1 Contribution and Related Work Since its introduction, region based memory management has been improved [3, 7] and transferred to other languages [26,30,54] In addition, many di erent avors of the region calculus have been developed [4, 9, 12, 13, 20, 23, 55, 56] usually to cater for more exible and powerful memory management. Our syntactic theory focuses on the region calculus by Tofte and Talpin, ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the 1995.
....optional support for garbage collection within regions [16] A number of extensions to the basic Tofte Talpin framework can avoid the constraints of LIFO region lifetimes. As examples, the ML Kit includes a reset region primitive [27] Aiken et al. provide an analysis to free some regions early [1]; and Walker et al. 29, 30] propose general systems for freeing regions based on linear types. All of these systems are more expressive than our framework. For instance, the ideas in the Capability Calculus were used to implement type safe garbage collectors within a language [31, 23] However, ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, CA, 1995.
....in a region are not garbage collected until the entire region is freed, which is important in our case where, for instance, a programmer cannot be assumed to have arranged that the result of a function is stored in a region di#erent from intermediate results computed by the function. Aiken et al. [1] show how region inference may be improved for some programs by removing the constraints of the stack discipline; such improvements to region inference could cause a fall back garbage collector to run less frequently. Also related to our work is the work on Cyclone [11] a safe version of the C ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'95), pages 174--185, La Jolla, CA, June 1995. ACM Press.
....of a region r. Memory for the region is allocated when control enters the scope of the letregion construct and is deallocated when control leaves the scope. This mechanism results in a strictly LIFO (last in, first out) ordering of region lifetimes. Both Birkedal et al. 4] and Aiken et al. [1] observed that a completely LIFO (de)allocation of regions would make poor use of memory in many cases. They proposed a series of optimizations that often alleviate e#ciency concerns and even improve upon traditional tracing garbage collection in some cases. Although their optimizations are safe, ....
....Progress lemmas in the style of Felleisen and Wright [40] that the type system of the Capability Calculus is sound. In contrast, Tofte and Talpin formulate the soundness of their system using a more complicated greatest fixed point argument [36] and the soundness of Aiken et al. s optimizations [1] depend upon this argument. Part of the reason for the extra complexity is that Tofte and Talpin simultaneously show that region inference translates lambda calculus terms into operationally equivalent region calculus terms, a stronger property than we prove. However, when system security is the ....
[Article contains additional citation context not shown here]
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
....Fax: 49 7612038052, e mail: shelsen computer.org inference for a realistic language. The ML kit does not rely on runtime garbage collection to obtain automatic memory management. 1. 1 Contribution and Related Work Since its introduction, region based memory management has been improved [3, 7] and transferred to other languages [26, 28, 52] In addition, many di#erent flavors of the region calculus have been developed [4,9,12,13,20,23,53,54] usually to cater for more flexible and powerful memory management. Our syntactic theory focuses on the region calculus by Tofte and Talpin, ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proc. of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, CA, USA, June 1995. ACM Press.
....Fax: 49 7612038052, e mail: shelsen computer.org inference for a realistic language. The ML kit does not rely on runtime garbage collection to obtain automatic memory management. 1. 1 Contribution and Related Work Since its introduction, region based memory management has been improved [3, 7] and transferred to other languages [26, 28, 52] In addition, many di erent avors of the region calculus have been developed [4,9,12,13,20,23,53,54] usually to cater for more exible and powerful memory management. Our syntactic theory focuses on the region calculus by Tofte and Talpin, which, ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proc. of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 174-185, La Jolla, CA, USA, June 1995. ACM Press.
....Our purpose is to automatically parallelize data fields such as g using space time mappings, and to use as little memory as possible in the generated code. The latter problem is addressed by the region marking algorithm introduced by Tofte Talpin to allow compile time memory management [12, 13]. However, the data storage we have to manage is given by the extent of data fields, and this does not correspond to regions in Tofte Talpin s sense. Here, we manage memory at compile time thanks to the logical time given by the schedule: when the last use of a datum occurs after some constant ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM SIGPLAN Conf on Prog. Lang. Design and Implem., 1995.
....is based on the notion that regions must be used in a rst allocated last deallocated, stack like fashion and moreover, that regions are intrinsically second class objects. Other proposals for static region based memory management [31, 14] and optimizations of Tofte and Talpin s original model [4, 2] helped to alleviate some of the expressiveness problems, but these proposals are often very complex. Moreover, none of these e orts consider regions to be rst class programming objects. As a result, the simple Pair function will not type check in previous systems. 1.2 Safety through Linear ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174-185, La Jolla, California, 1995.
....support for garbage collection within regions [14] A number of extensions to the basic Tofte Talpin framework can avoid the constraints of LIFO region lifetimes. As examples, the ML Kit includes a reset region primitive [21] Aiken et al. provide 16 an analysis to free some regions early [1]; and Walker et al. 23, 24] propose general systems for freeing regions based on linear types. All of these systems are more expressive than our framework. For instance, the ideas in the Capability Calculus were used to implement type safe garbage collectors within a language [25, 18] However, ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, CA, 1995.
....for Oasis. 2.4.2 Effect Systems There has been various work on Effect Systems, at first concerning issues of proper treatment of references in an ML language [29, 30] and more recently the replace CHAPTER 2. HISTORY AND RELATED WORK 15 ment of garbage collection by static memory management [32, 1]. The semantics for these systems appear to work in a manner that resembles the treatment of overloading in Oasis, as well as Mark Jones system for qualified types. Chapter 3 Language Overview This chapter will provide an informal overview of Oasis. I assume the reader is familiar with ....
....checks performed by most ML compilers. The analysis for exception tracking would be very much like overload resolution. An exception resolves if it matches an exception bound by an enclosing handler. If an exception abstracts, then warnings can be generated. ffl Static memory management [32, 1]. Research into techniques for the elimination of garbage collection is progressing at an exciting pace. The region and effect systems [30, 31] that are used as the basis for static memory management annotation have many similarities to overload solution. Merging the two into a common framework ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In PLDI95, San Diego, California, June 1995.
....studied by Gifford, Jouvelot, and Talpin [8, 12] The work was motivated by a desire to use stack allocation instead of heap allocation in mostly pure functional programs, and also to assist parallel code generation. The approach was demonstrated successfully for the former purpose in later work [1, 13]. These researchers also make use of a concept of disjoint regions of mutable state, but these regions are global, as opposed to within objects. In the original FX system, effects can be verified and exploited in separately developed program components. Leino [9] defines data groups, which ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, San Diego, California, USA, ACM SIGPLAN Notices, 30(6):174--185, June 1995.
....functional programming language Standard ML [30] was the rst practical implementation of region inference for a realistic language. The ML kit does not rely on runtime garbage collection 1 to obtain automatic memory management. Since its introduction, region inference has been improved [3, 7] and transferred to other languages as well [9, 24, 47] Recently, researchers have related region calculi to an extension of the pi calculus with name groups [51] and a calculus of capabilities [10] The most widely used avor of a region calculus is the one by Tofte and Talpin [46] which we ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proc. of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 174-185, La Jolla, CA, USA, June 1995. ACM Press.
....Programming Languages (POPL 2001) c 2001 by ACM. useless, and add (constant time) operations for reclaiming memory in xed position inside the code generated during compilation. This is the approach adopted in the design of region and e ect systems [17] and in particular in the region calculus [19, 20, 18, 5, 6, 1], extending traditional type systems with regions and e ects annotations. The syntax of the region calculus extends the call by value typed lambda calculus with region annotations and a construct for allocating regions using a stack discipline. The store is a collection of regions, each behaving ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation", pages 174-185, 1995. La Jolla, California.
....lifetimes do not follow a stack discipline. In the ML Kit [13] a compiler for Standard ML using region based memory management, a storage mode analysis is used to determine when it is safe to deallocate the data in a region prior to deallocation of the region itself. Aiken, Fhndrich, and Levien [1] (AFL) employ another technique that separates region allocation and deallocation from introduction of region variables. The technique postpones allocation of a region until just before its first access, and deallocates it just after the last access. This leads to late allocation and early ....
....regions. The analyses in the ML Kit solve this problem by conservatively approximating the set of aliased region variables [13, Section 12.2] Our solution, as described later, is to explicitly count the number of references to a region at runtime. 2. 3 Aiken Fhndrich Levien The AFL system [1] extends the TT system in another direction 2 , decoupling dynamic region allocation and deallocation from the introduction of region variables in the interpretation of the letregion construct. In the AFL system, entry into a letregion block introduces a region variable, but does not allocate a ....
[Article contains additional citation context not shown here]
A. Aiken, M. Fhndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), volume 30(6) of SIGPLAN Notices, pages 174--185, 1995.
....that are compiled into destination passing style. However, Minamide s language is still quite high level; he does not show how to verify explicit pointer manipulation. Moreover, neither of these type systems provide the ability to represent cyclic data structures. Tofte, Talpin, and others [39, 5, 2] have explored the use of region based memory management. In their work, objects are allocated into one of several regions of memory. When a region is deallocated, all the objects in that region are deallocated too. Region based memory management performs extremely well in many circumstances, but ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
.... by others, provides type safe explicit 2 fun gc(from, k, roots) if(need gc(from) then let to = new space( in let roots = copy(from, to, roots) in free space(from) k(to, roots ) else k(from, roots) from to initial copy flip Figure 2: Traditional Garbage Collector memory management [27, 1, 9, 7]. We can use the memory management primitives provided by a region system to guarantee that it is safe to deallocate the from space after the garbage collector has copied all the live data into the to space. Pointer sharing is preserved by the use of forwarding pointers which provide an ecient ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In Proceedings of SIGPLAN'95 Conference on Programming Languages Design and Implementation, volume 30 of ACM SIGPLAN Notices, pages 174-185, La Jolla, CA, June 1995. ACM Press.
....until the invocation of the garbage collector. Moreover, a traditional tracing garbage collector cannot reclaim memory space that is semantically garbage but reachable from the stack or registers. To reuse memory space more eagerly, several techniques have been proposed based on region inference [TT94, AFL95,BTV96] or linear type systems 1 [GH90, Wad90,CGR92,TWM95, Iga97, Mog97, IK00b, Kob99, WJ99] We follow the latter approach here. Linear (more precisely, ane linear) type systems can guarantee that certain values (called linear values) are used at most once, so we can reclaim memory space for such ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI), pages 174-185, San Diego, CA, June 1995.
.... by others, provides type safe explicit 2 fun gc(from, k, roots) if(need gc(from) then let to = new space( in let roots = copy(from, to, roots) in free space(from) k(to, roots ) else k(from, roots) from to initial copy flip Figure 2: Traditional Garbage Collector memory management [27, 1, 9, 7]. We can use the memory management primitives provided by a region system to guarantee that it is safe to deallocate the from space after the garbage collector has copied all the live data into the to space. Pointer sharing is preserved by the use of forwarding pointers which provide an e#cient ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In Proceedings of SIGPLAN'95 Conference on Programming Languages Design and Implementation, volume 30 of ACM SIGPLAN Notices, pages 174--185, La Jolla, CA, June 1995. ACM Press.
....1 and closure conversion techniques and their supporting technologies in a higher order functional language based on intersection types. In particular, the Tofte Talpin region inference system for memory management has been extensively studied, implemented and tested [TT94, Vej94, AFL95, EH95, BTV96, TB96, TT97]. In that system, well typed ML programs are transformed into equivalent programs in which explicit memory management instructions have been inserted. The system is based on a notion of run time storage being divided into stack of regions, which are areas of memory in which one or more values may ....
.... for some time, and in most cases are used to model imperative features and memory behavior of programs [GJLS87, LG88, JG89a, JG89b, JG91, TJ94] A large body of recent work has studied the inference of data lifetimes using e ect systems in languages based on the Hindley Milner type discipline [TJ92, TT94, AFL95, TT95]. These systems are able 4 to approximate data lifetimes, and insert explicit memory allocation and deallocation instructions in the target program. Intuitively, an e ect is simply a set of region variables. An expression with e ect f 1 ; 2 g, for example, indicates that the evaluation of ....
Alex Aiken, Manuel Faehndrich, and Ralph Levien. Better static memory management: Improving region-based analysis of higher order languages. In Proc. ACM SIGPLAN '95 Conf. Prog. Language Design & Implementation, 1995.
....here that this interface does not require region creation and deletion to follow a last in first out discipline. Such a discipline has been implicit in the presentation of much of the earlier work on regions, but has never actually been followed in implementations. Indeed, the techniques of Aiken et al. 1995] and Birkedal et al. 1996] for avoiding memory leaks in tail recursive programs depend on creating client programs that use regions in a non LIFO pattern. It is outside the scope of this article to describe the region inference process that augments the client program with makeregion and ....
Aiken, A., Fahndrich, M., and Levien, R. [1995]. Better static memory management: Improving region-based analysis of higher-order languages (extended abstract). In Programming Language Design and Implementation (ACM SIGPLAN Conference, PLDI '95, La Jolla, CA, USA), special issue of ACM SIGPLAN Notices, 30(6):174--185.
....overhead. The region inference system of Tofte and Talpin [TT94, TT97] infers a set of regions in which to place all allocated objects. The only way to free memory is to delete a region; the allocation and deallocation of regions must follow a stack discipline. That requirement was relaxed in [AFL95] The regions are dynamically sized, but in the cases where a bound on their size can be computed they can be placed on the stack. This system is much more general than ours, but the analysis is also much more complex. In addition, the programmer must sometimes modify the program to avoid leaking ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: improving region-based analysis of higher-order languages. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation (PLDI), pages 174--185, La Jolla, CA, June 1995.
....of a region r. Memory for the region is allocated when control enters the scope of the letregion construct and is deallocated when control leaves the scope. This mechanism results in a strictly LIFO (last in, first out) ordering of region lifetimes. Both Birkedal et al. 4] and Aiken et al. [1] observed that a completely LIFO (de)allocation of regions would make poor use of memory in many cases. They proposed a series of optimizations that often alleviate e#ciency concerns and even improve upon traditional tracing garbage collection in some cases. Although their optimizations are safe, ....
....Progress lemmas in the style of Felleisen and Wright [40] that the type system of the Capability Calculus is sound. In contrast, Tofte and Talpin formulate the soundness of their system using a more complicated greatest fixed point argument [36] and the soundness of Aiken et al. s optimizations [1] depend upon this argument. Part of the reason for the extra complexity is that Tofte and Talpin simultaneously show that region inference translates lambda calculus terms into operationally equivalent region calculus terms, a stronger property than we prove. However, when system security is the ....
[Article contains additional citation context not shown here]
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
....elimination. It is however more costly than ours. Alias analysis [13] reference counting [18, 19] storage use analysis [29] which is similar to [12, 17, 22, 30] can be applied to stack allocation though at a much higher cost. Another allocation optimization has been suggested in [1, 3, 31]: region allocation. All objects are allocated in heap regions whose size is not known statically in general, but for which we know when they can be deallocated. Regions can therefore be deallocated without GC. This analysis solves a more general problem than ours, but at the cost of an increased ....
....OE 0 (n0 ; n j ) v1 v2 if and only if v1 gives a more precise escape information than v2 . ffl Upper bound: Let v1 = OE 1 ; 0 ; j ) 0 1 ) v2 = OE 2 ; 0 ; j ) 0 2 ) Then v1 t v2 = convert( 0 1 ; 0 2 ) ffi OE 1) t OE 2 ; 0 ; j ) 0 2 ) if [2 ] [1 ]. Otherwise, we swap the indices 1 and 2. The choice of the highest type as the type of the result aims at improving the precision of the analysis. ffl Construction: Let v = OE; 0 ; j ) 0 ) If v is the abstract value associated with the f field of an object o, cons f (v) gives the ....
Aiken, A., F ahndrich, M., and Levien, R. Better Static Memory Management: Improving Region-Based Analysis of Higher-Order Languages. In ACM SIGPLAN Conference on Programming Language, Design and Implementation (PLDI'95) (San Diego, California, June 1995), pp. 174--185.
....who only free the top of lists, but give experimental results. Alias analysis [13] reference counting [22, 19] storage use analysis [34] which is similar to [26, 18, 12, 35] can be applied to stack allocation though at a much higher cost. Another allocation optimization has been suggested in [38, 5, 2]: region allocation. All objects are allocated in heap regions whose size is not known statically in general, but for which we know when they can be deallocated. Regions can therefore be deallocated without GC. This analysis solves a more general problem than ours, but at the cost of a much ....
....r; loc(sx ) and by Theorem 3.2, can be stack allocated. 4 Escape Analysis on Numerical Contexts We now represent escapement by integer levels, and we define a translation from sets of paths to integers. We define type levels by 2 [ 1 if = bool, int or unit 2 [1 2 ] 2 [2 ] 2 [1 2 ] 1 max( 2 [1 ] 2 [2 ] 2 [ list] 1 2 [ 2 [ ref] 1 2 [ 1 [ 1 if contains a functional type 1 2 1 [ 0 otherwise The level of a path is defined by ff 2 ( 2 [ if is not functional, 1 otherwise ff 2 ( 0 ff 1 2 2 (app:c) ff 2 2 ....
[Article contains additional citation context not shown here]
Aiken, A., F ahndrich, M., and Levien, R. Better static memory management: Improving region-based analysis of higher-order languages. In PLDI95 (San Diego, California, June 1995).
....It would be interesting to see if there is some unification of the ideas into one calculus; possibly F # already has enough structure to model notions of dependency. We believe that F # is a good candidate for modelling other region based calculi. For instance, Aiken, Fahndrich, and Levien [3] describe a type system where the allocation and deallocation of regions is split from the scoping declaration of letregion. Other papers develop the more practical aspects of region based memory management [4, 22] A recent paper of Crary, Walker, and Morrisett describes a different type system ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the 1995 ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 1995.
....first authors to examine the language and performance implications of stack vs. heap allocation. Other authors have shown how hybrid heap stack strategies for allocating both continuations [8] and data structures [4] can improve performance. Our work is most closely related to Aiken et al. s work [1] which describes an ML compiler with implicit region operations and to Gay and Aiken s work [12] which describes a compiler for a C like language with explicit region operations. Our work differs in that we try to provide implicit region allocation in an object oriented imperative language. We are ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, 1995.
....which programs are accepted by the compiler (and is therefore important) region analysis is merely an internal static analysis which makes no claim of being optimal in terms of runtime memory consumption. From a practical point of view, other program analyses that supplement region inference [Aiken et al. 1995; Birkedal et al. 1996] are at least as important as principality. The input programs to our algorithm do not contain region annotations. This makes it possible to apply region inference to Standard ML, which is defined without any reference to regions. This is good for portability, but decreases ....
....well formed type schemes is important for dealing with polymorphism. The basic ideas of region inference are described in Tofte and Talpin [1994] A soundness proof for region inference is presented in Tofte and Talpin [1997] Other analyses which can accompany region inference are described in Aiken et al. 1995] and Birkedal et al. 1996] Sections 4 to 6 of the present article are essentially a summary of Tofte and Birkedal [1998] in which properties about the basic operations employed in this article (such as unification) are stated and proved. The contribution of this article is the region inference ....
Aiken, A., F ahndrich, M., and Levien, R. 1995. Better static memory management: Improving region-based analysis of higher-order languages. In Proceedings of the ACM SIGPLAN '95 Conference on Programming Languages and Implementation (PLDI). ACM Press, New York, 174--185.
....the strict separation between allocation and de allocation means that there is no language support for reasoning about the lifetimes of storage cells, and thus it is in general very difficult for programmers to reason about how much memory their programs will use. Region based memory management[23, 1, 2] is yet a form of automatic management of dynamic allocation. Conceptually, the store consists of a stack of regions. A region can be thought of as a heap which can grow dynamically depending on how many values it needs to hold. Regions are allocated and de allocated in a stack like manner, i.e. ....
....ae 22 and ae 27 are used for. 3 Related Work The basic ideas of the region inference scheme are described in [23] An extended version, including a proof that the region inference rules are sound, may be found in [24] Other analysis which have been combined with region inference are described in [1, 2]. The emphasis of this paper is on using unification to constrain region variables and arrow effects. Arrow effects decorate function arrows in the region type system with information of how the function uses regions. In the case of arrow effects, the difficulty is that the unification is of ....
A. Aiken, M. Fahndrich, and R. Levien. Better static memory management: Improving regionbased analysis of higher-order languages. In Proc. of the ACM SIGPLAN '95 Conference on Programming Languages and Implementation (PLDI), pages 174--185, La Jolla, CA, June 1995. ACM Press.
....representation of data, the reconstruction of their data storage properties is essential to compile them efficiently. It is at the core of optimizing implementations of ML which aim at alleviating the need for costly garbage collection algorithms by implementing static memory management schemes [Aiken al. 1995, Tofte al. 1994] These developments aim at providing the user community with implementations platforms of functional languages which better satisfy the requirements for inter operable and real time applications. To this end, the static analysis of memory usage properties in functional ....
....principles of typing, formulate a decidable inference system and present its correct implementation. Our syntactic representation of data regions naturally supports subtyping to approximate sharing properties. Whereas other inference techniques usually make explicit use of subtyping constraints [Aiken al. 1995, Consel al. 1994, Henglein al. 1994, Tang 1994] ours comes with the formulation of the first constraintfree subtype inference algorithm, section 8. Furthermore, it allows using a decidable account to type polymorphism for recursive functions, introduced in [Talpin al. 1995] In ....
[Article contains additional citation context not shown here]
Aiken, A., Fahndrich, M., and Levien, R. Better static memory management: improving region-based analysis of higher-order languages. In Proceedings of the 1995th. ACM Conference on Programming Language Design and Implementation. ACM Press, 1995.
No context found.
A. Aiken, M. Fahndrich, and R. Levien. Better Static Memory Management: Improving RegionBased Analysis of Higher-Order Languages. In Proceedings of the 1995.
No context found.
A. Aiken, M. Fahndrich, and R. Levien. Better Static Memory Management: Improving RegionBased Analysis of Higher-Order Languages. In Proceedings of the 1995.
No context found.
A. Aiken, M. Fahndrich, and R. Levien. Better Static Memory Management: Improving Region-Based Analysis of Higher-Order Languages. In Proceedings of the 1995.
....locking in the Linux kernel (as in Section 5) we must allow non lexically scoped lock acquires and releases. The subset of our system consisting of alias analysis and e ect inference can be seen as a monomorphic variant of region inference [TT94] The improvements to region inference reported in [AFL95] are a much more expensive and precise method for computing linearities. Data ow Analysis. Although our type based approach is related to data ow analysis [ASU88] it di ers from classical data ow analysis in several ways. First, we generate constraints over stores and types to model the ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better Static Memory Management: Improving Region-Based Analysis of Higher-Order Languages. In Proceedings of the
....of memory it is necessary for the programmer to understand the regions inferred by the compiler and to adjust the program so that the compiler infers better region assignments. Second, optimizations beyond the basic inference procedure make an enormous difference in memory management performance [AFL95, BTV96] Both of these properties suggest that explicit first class regions may be appropriate, but combining explicit programmer controlled regions with region inference appears to be a very difficult problem. Bobrow [Bob80] is the first to propose the use of regions to make reference counting ....
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: improving region-based analysis of higher-order languages. In Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation (PLDI), pages 174--185, La Jolla, CA, June 1995.
No context found.
Aiken, A., F ahndrich, M., and Levien, R. 1995. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation. ACM Press, La Jolla, California, 174-185.
No context found.
Aiken, A., Fahndrich, M., Levien, R.: Better static memory management: Improving region-based analysis of higher-order languages. In: Proc. Programming Language Design and Implementation. (1995) 174--185
No context found.
Alex Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995.
No context found.
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
No context found.
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
No context found.
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In ACM Conference on Programming Language Design and Implementation, pages 174--185, La Jolla, California, 1995.
No context found.
Alex Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In pages 174--185, La Jolla, CA, June 1995.
No context found.
Alex Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995.
No context found.
Alex Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), June 1995.
No context found.
Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management: Improving region-based analysis of higher-order languages (extended abstract). In Programming Language Design and Implementation (ACM SIGPLAN Conference, PLDI '95, 18--21 June 1995, La Jolla, CA, USA), special issue of ACM SIGPLAN Notices, 30(6):174--185. hhttp://http.cs.berkeley.edu/~aiken/ftp/region.psi.
No context found.
A. Aiken, M. Fhndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Programming Language Design and Implementation (PLDI), volume 30(6) of SIGPLAN Notices, pages 174--185, 1995.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC