23 citations found. Retrieving documents...
Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Static Monotonicity Analysis for lambda-Definable Functions.. - Murawski, Yi   (Correct)

....v 2 me(y) v # 2 because me # me, so v 2 (me[0 x] y) v # 2 . The reasoning in other cases is pretty much similar and uses the arguments we have outlined informally when introducing the system. 5 Algorithm Our e#ect type system is a little di#erent from conventional e#ect systems. In [TT94,TT93,TJ92,TJ91] e#ects are constant symbols and the only operation involved is set union. In this paper e#ects (monotonicity tables) are subject to other operations: #, if and ifc. Hence, we cannot solely rely on the unification procedure [Rob65] for type inference. Our algorithm consists of two ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report Technical Report 93/15, Department of Computer Science, Copenhagen University, July 1993.


Implementation techniques for a multi-service Java Virtual Machine - Harris (1999)   (Correct)

....tend to be both large and long lived and are segregated so that they may be managed with a mark sweep collector in order to avoid unnecessary copying. Regions 4.4. 3 Recent work, also using ML, has proposed a quite different organization in which the heap is formed from a stack of regions [TT94, TT97, Tof98] Each region is itself a stack of potentially unbounded size and allocations may be made at any time into any of the regions. Storage space is reclaimed by popping entire regions from the stack. A translation is defined from well typed source language expressions into a target ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report Computer Science 93/15, University of Copenhagen, July 1994.


An Optimizing Backend for the ML Kit Using a Stack of Regions - Elsman, Hallenberg (1995)   (4 citations)  (Correct)

....are performed (optional) Region inference now works by first spreading fresh region and effect variables throughout the typed lambda program and then in a separate step unifying region and effect variables. A closer description of the algorithm is beyond the scope of this paper. See [TT93, section 5] for details. The storage mode analysis determines if values must be stored at top in a region or may be stored at bottom in a region (by first resetting the region) Tof94b] Physical size inference determines the physical sizes of regions with logical size one. Such regions are stack allocated. ....

....system written in C. Since C is fairly portable it is possible to reuse most parts of the runtime system in backends for other architectures. For implementing region inference the backend must provide a set of functions to manipulate a stack of regions, where each region behaves like a heap [TT93]. An algorithm for region inference inserts operations in a program for allocation and deallocation of regions and annotates each constructed value with the region in which the value should be stored. Memory allocations in regions are not necessarily allocations in the top region, since overall ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical report, University of Copenhagen and European Computer-Industry Research Center, July 1993.


Monadic Encapsulation in ML - Semmelroth, Sabry (1999)   (11 citations)  (Correct)

....allocation and deallocation in ML programs [TT94] In systems designed to exploit regions for optimization purposes, effect masking is used to guide deallocation of regions at runtime. As Tofte and Talpin argue, the correctness of this deallocation step is far from obvious and requires a proof [TT93, p.15] Using natural semantics, they provide such a proof for a pure language, i.e. where the only effects are those which exist in the underlying implementation. In contrast, the present study pertains only to user allocated heap structures. The recent work on monads raises another obvious ....

....target monadic language to the extent that simple source level functions that return computations cannot be encapsulated. Another way to deal with the problem, that does not restrict the language, is to use a proof technique other than subject reduction. Tofte and Talpin pursue such an approach [TT93] To motivate their more complicated proof technique, they conduct an analysis much like the one we just presented and conclude: It appears, however, that no matter how we try to define consistency, consistency is not preserved under evaluation : This loss of consistency appears to be at ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report 93/15, Department of Computer Science, Copenhagen University, July 1993.


A Region Profiler for a Standard ML compiler based on Region.. - Hallenberg (1996)   (1 citation)  (Correct)

....14, 1996 3 1 Introduction Functional languages like Standard ML [12, 11] normally use a garbage collector to reclaim some of the unused memory. Another approach is to use a region based memory management scheme where allocation and deallocation of regions should give a more eager reuse of memory [23, 21, 22]. Region Inference is a static analysis which only gives an approximation of the dynamic memory behaviour of the program. In some cases the analysis gives a bad approximation and memory allocations which could be local are treated as global allocations with the result that memory is not eagerly ....

....overview of profiling in the ML Kit. We assume that the reader is acquainted with Standard ML [12, 11] and the notation used in the typed call by value lambda calculus. It should not be necessary to be well of in the theory of region inference but more information on the theory can be found in [21, 23, 22, 2]. We will often refer to [7] because it contains a detailed description of how region inference is implemented in the ML Kit. Implementational details of the ML Kit can be found in [10, 5, 6] Experience with the ML Kit is reported in [4, 23] 1 This report is based on the ML Kit with Regions ....

[Article contains additional citation context not shown here]

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


Functional Encapsulation and Type Reconstruction in a.. - Gupta (1995)   (2 citations)  (Correct)

....a close expression and is actually not returned from that expression, is guaranteed to be bound to the scope of that close expression. This is because no references to that object may escape this scope. This information may be used to allocate such objects on stack instead of the heap as shown in [TT93] or insert additional code at compile time to reclaim that storage automatically on the lines of [HJ92] 102 Part II Types in Run time System Design: Type Reconstruction 103 Chapter 5 A Typed Run time System 5.1 Introduction Traditionally, programming environments of dynamically typed ....

Mads Tofte and Jean-Pierre Talpin. A Theory of Stack Allocation in Polymorphically Typed Languages. Technical Report 93/15, Department of Computer Science (DIKU), Copenhagen University, 1993.


Region Inference with Rank-2 Intersection Types and its.. - Westmacott, Muller.. (1999)   (Correct)

....TJ92] by annotating arrow constructors with an e ect: The presence of set annotations in types has an impact on uni cation during type and e ect inference. Tofte and Talpin introduce arrow e ects so that substitution alone can be used to re ne e ects appropriately during uni cation [TT93]. An arrow e ect is a pair consisting of an e ect variable and an e ect: Arrow e ects annotate the arrow of function types, with the meaning that is the e ect of the function body, which is manifest whenever the function is applied to an argument. De nition 5 (Region Variables and E ects) ....

....from region j and put the normal closure in region . In rule (abs) the e ect of an abstraction is to put the closure in region . The latent e ect of the abstraction is any e ect which contains the e ect of the body. This allows one to in ate latent e ects in order to unify function types [TT93]. In rule (app) the e ect of an application includes the e ect of evaluating the operator, the combined e ect of evaluating the operand for each conjunct, the latent e ect of the operator, and 0 , the region containing the operator s closure (which must be retrieved to perform the ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-93-15, Department of Computer Science, Copenhagen University, 1993.


Escape Analysis for Object Oriented Languages. Application to Java - Blanchet (1999)   (26 citations)  (Correct)

....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 ....

Tofte, M., and Talpin, J.-P. A theory of Stack Allocation in Polymorphically Typed Languages. Tech. Rep. 93/15, Departement of Computer Science, Copenhagen University, 9 July 1993. 15


Escape Analysis: Correctness Proof, Implementation and.. - Blanchet (1998)   (1 citation)  (Correct)

....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 ....

Tofte, M., and Talpin, J.-P. A theory of Stack Allocation in Polymorphically Typed Languages. Tech. Rep. 93/15, Departement of Computer Science, Copenhagen University, 9 July 1993. 13


Early Storage Reclamation in a Tracing Garbage Collector - Harris (1999)   (3 citations)  (Correct)

....tend to be both large and long lived and are segregated so that they may be managed with a mark sweep collector in order to avoid unnecessary copying. 5. 3 Regions Recent work, also using ML, has proposed a quite different organization in which the heap is formed from a stack of regions [TT94, TT97, Tof98]. Each region is itself a stack of potentially unbounded size and allocations may be made at any time into any of the regions. Storage space is reclaimed by popping entire regions from the stack. A translation is defined from well typed source language expressions into a target language in which ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report Computer Science 93/15, University of Copenhagen, July 1994.


Better Static Memory Management: Improving Region-Based.. - Aiken, Fähndrich, Levien (1995)   (53 citations)  (Correct)

....determines the kind of each letregion construct. Our proof does not attempt to make the reuse of regions formally safe. The proof requires letregion constructs to use fresh regions. This is arguably a weakness with respect to the Tofte Talpin system, where the reuse of regions is provably safe [TT93] However, we prove that once a region is deallocated, no more reads or writes to the memory held by that region are made. 6.3 Relations between abstract and concrete entities The following paragraphs define relations between abstract and concrete entities that are used throughout the proof. ....

....(291) s 1 ; r sat R; S out ek;R ; by 284,290,267,266, 272,Lemma 6.10 The result for [ALLOC BEFORE] follows from 289 and 291. 7 Implementation and Experiments We have implemented our algorithm in Standard ML [MTH90] Our system is built on top of an implementation of the system described in [TT93, TT94] generously provided to us by Mads Tofte. The implementation is extended with numbers, pairs, lists, and conditionals, so that non trivial programs can be tested. For each source program, we first use the Tofte Talpin system to region annotate the program. We then compute the extended ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report 93/15, Department of Computer Science, University of Copenhagen, July 1993.


Monadic Encapsulation in ML - Semmelroth, Sabry (1999)   (11 citations)  (Correct)

....and has no operational significance. In systems designed to exploit regions for optimization purposes [TT94, TT97] effect masking is used to guide deallocation of regions at runtime. As Tofte and Talpin argue, the correctness of this deallocation step is far from obvious and requires a proof [TT93, p.15] But despite the fact that their implementation handles assignments, their proof only applies to the pure subset of the language, where the only effects are those which exist in the underlying implementation. A more recent treatment of regions based on a calculus of capabilities still only ....

....Furthermore, this restriction disallows primitives like pointer equality, that use references in non trivial but safe ways. Another way to deal with the problem, that does not restrict the language, is to use a proof technique other than subject reduction. Tofte and Talpin pursue such an approach [TT93] To motivate their more complicated proof technique, they conduct an analysis much like the one we just presented and conclude: It appears, however, that no matter how we try to define consistency, consistency is not preserved under evaluation . This loss of consistency appears to be at ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report 93/15, Department of Computer Science, Copenhagen University, July 1993.


Better Static Memory Management: Improving Region-Based.. - Aiken, al. (1995)   (53 citations)  (Correct)

.... R; S out e;R ; o The proof is by induction on the structure of e and is included in the full version of the paper [AFL95] 6 Implementation and Experiments We have implemented our algorithm in Standard ML [MTH90] Our system is built on top of an implementation of the system described in [TT93, TT94] generously provided to us by Mads Tofte. The implementation is extended with numbers, pairs, lists, and conditionals, so that nontrivial programs can be tested. For each source program, we first use the Tofte Talpin system to region annotate the program. We then compute the extended ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report 93/15, Department of Computer Science, University of Copenhagen, July 1993.


Generational Stack Collection and Profile-Driven Pretenuring - Cheng, Harper, Lee (1998)   (23 citations)  (Correct)

....the GC time of Nqueens is further reduced by another 80 , reducing the overall GC time to 1.3 . This result is promising and an automated system for detecting such sites would be needed to make this optimization useful. Some useful techniques that may help with this problem are region inference (Tofte and Talpin 1993; Tofte and Talpin 1994; Aiken, Fahndrich, and Levien 1995; Birkedal, Tofte, and Vejlstrup 1996) dataflow analysis (Allen and Cocke 1970; Kennedy 1981) and control flow analysis (Shivers 1991) For the remaining objects which may point to the nursery, another optimization is possible. We ....

Tofte, M. and J.-P. Talpin (1993, July). A theory of stack allocation in polymorphically typed languages. Technical Report Computer Science 93/15, University of Copenhagen.


A Calculus for Boxing Analysis of Polymorphically Typed Languages - Jørgensen (1996)   (2 citations)  (Correct)

....A scheme for finding the execution frequency of edges may take many different things into account, such as strictness or neededness of arguments or occurrence counting similar to that used by the partial evaluator Similix [Bon90] 6.6. 6 Boxing analysis in the ML kit compiler The ML kit compiler[BRTT93] is a prototype SML compiler under construction at DIKU based on Talpin and Tofte s [TT94, TT93] region inference. Region inference provides the basis for a stack allocation like implementation of typed call by value functional languages. The stacklike behaviour is expressed by the fact that all ....

....such as strictness or neededness of arguments or occurrence counting similar to that used by the partial evaluator Similix [Bon90] 6.6. 6 Boxing analysis in the ML kit compiler The ML kit compiler[BRTT93] is a prototype SML compiler under construction at DIKU based on Talpin and Tofte s [TT94, TT93] region inference. Region inference provides the basis for a stack allocation like implementation of typed call by value functional languages. The stacklike behaviour is expressed by the fact that all the values in a program, including function closures, are put into regions at runtime, that are ....

[Article contains additional citation context not shown here]

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


Aspects Theoriques Et Pratiques De L'inferences De Type Et Effets - Talpin (1993)   Self-citation (Tofte Talpin)   (Correct)

No context found.

Tofte, M., and Talpin, J. P. A Theory of Stack Allocation in Polymorphically Typed Languages. Technical Report (Draft), University of Copenhagen, June 1993.


Combining Region Inference and Garbage Collection - Hallenberg, Elsman, Tofte (2002)   (5 citations)  Self-citation (Tofte)   (Correct)

....stack. 2.6 Dangling Pointers Region inference allows for both shallow and deep pointers, that is, pointers from older regions to newer regions and from newer regions to older regions. A shallow pointer may turn into a dangling pointer if the newer region is deallocated before the older region [19]. When memory is not traversed by a garbage collector, such dangling pointers are safe because region inference has discovered that these pointers are not dereferenced by the program at runtime. Our pointer tracing garbage collection algorithm, however, does not work when there are dangling ....

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


Multiplicity Inference - Inferring sizes of regions - Vejlstrup (1994)   Self-citation (Tofte)   (Correct)

....in stack order. But in the absence of procedure activations as the point of memory allocation we are left with two problems: we must find out which values to put in which blocks and decide when the blocks should be allocated and deallocated. These two problems are solved by region inference[TT93a, TT93b]. The input of Introduction 4 the analysis is the typed call by value calculus with let polymorphism and recursive functions. The output is a program which is identical to the input, except for some region annotations. There are two ways an expression can be annotated ffl e at ae signifying ....

....input a functional program and produces a region expression, a more low level program with explicit storage allocation instructions. After having introduced some basic notation, we present these source and target languages, and then the translation semantics. The following sections are based on [TT93a, TT93b]. 2.1 Notation In this section we introduce some basic notation. By fin(A) we mean the set of finite subsets of A, and by Vec(A) the set of finite sequences of members of A. By A fin Gamma B we denote the set of finite maps from A to B. We use fg to denote the empty set or the empty map. By ....

[Article contains additional citation context not shown here]

Mads Tofte & Jean-Pierre Talpin. A Theory of Stack Allocation in Polymorphically Typed Languages, DIKU-rapport Nr.93/15, Department of Computer Science, University of Copenhagen, Universitetsparken 1, 2100 Copenhagen , Denmark, 1993.


Implementation of the Typed Call-by-Value lambda-calculus.. - Tofte, Talpin (1994)   (17 citations)  Self-citation (Tofte Talpin)   (Correct)

....presented in Section 3. The correctness proof is in Section 4. In Section 5 we discuss strengths and weaknesses of the translation and give experimental results. Due to space limitations, most proofs have been omitted. Detailed proofs (and an inference algorithm) are available in a technical report[30]. 2 Source and target languages 2.1 Source language We assume a denumerably infinite set Var of variables. Each variable is either an ordinary variable, x, or a letrec variable, f . The grammar for the source language is 1 e : x j x:e j e 1 e 2 j let x = e 1 in e 2 end j letrec f(x) e 1 ....

....finite domain. The domain and range of a finite map f are denoted Dom(f) and Rng(f) respectively. When f and g are finite maps, f g is the finite map whose domain is Dom(f) Dom(g) and whose value is g(x) if 1 For brevity, we omit pairs and projections from this paper. They are treated in [30]. x 2 Dom(g) and f(x) otherwise. f # A means the restriction of f to A. A (non recursive) closure is a triple hx; e; Ei, where E is an environment, i.e. a finite map from variables to values. A (recursive) closure takes the form hx; e; E; fi where f is the name of the function in question. A ....

[Article contains additional citation context not shown here]

Mads Tofte and Jean-Pierre Talpin. A Theory of Stack Allocation in Polymorphically Typed Languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


Region-Based Memory Management - Tofte, Talpin (1997)   (180 citations)  Self-citation (Tofte Talpin)   (Correct)

No context found.

M. Tofte and J.-P. Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


Garbage Collection Safety for Region-based Memory Management - Elsman   (Correct)

No context found.

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report DIKU-report 93/15, Department of Computer Science, University of Copenhagen, 1993.


the Garbage Collection Bibliography - Richard Jones (2003)   (Correct)

No context found.

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report Computer Science 93/15, University of Copenhagen, July 1993.


Yet Another Ensemble of Abstract Interpreter, Higher-Order.. - Yi (2001)   (Correct)

No context found.

Mads Tofte and Jean-Pierre Talpin. A theory of stack allocation in polymorphically typed languages. Technical Report Technical Report 93/15, Department of Computer Science, Copenhagen University, July 1993.

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