9 citations found. Retrieving documents...
Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393--407. The MIT Press, 1993.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Storage Size Reduction by In-place Mapping of Arrays - Tronçon.. (2002)   (1 citation)  (Correct)

....by a linearization for arrays where linearization could potentially give large additional savings. Other related work. Within logic programming, there are several works aiming at compile time analysis with the purpose of reusing memory cells once the last reference to them has passed (e.g. [8, 10, 13]) For what concerns the reuse of the storage of multidimensional arrays, the problem was formally identified by Verbauwhede et al. 18] A first systematic approach, for a fixed linearization of the array was developed by Vanhoof et al. 17] Quillere and Rajopadhye[15, 16] study the problem for ....

Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393--407. The MIT Press, 1993.


Practical Aspects for a Working Compile Time Garbage .. - Mazur, Ross.. (2001)   (3 citations)  (Correct)

....i.e. a dead cell can only be reused in the same procedure as where it is last accessed (deconstructed) In Section 6 we discuss techniques of how to lift this restriction. Furthermore, we consider that dead structures can only be reused by at most one new structure. Using the terminology of Debray [7], we limit ourselves to the simple reuse problem. It is not dicult to remove this limitation, but it makes the reuse decisions more complex. We plan to lift this restriction in the future. The data ow analysis of the example identi es the deconstructed datastructures (at d1, resp. d2) as ....

....(at d1, resp. d2) as available for reuse. The procedure also contains two constructions (c1 and c2) where the memory from the dead cells could be reused. Each of the combinations yields an acceptable reuse scheme. Yet, which one is the most interesting It has been shown that this problem [7] can be reformulated as an instance of the maximum weight matching problem for a weighted bipartite graph. However for simplicity of implementation we have reduced this : type field1 field1(int, int, int) type field2 field2(int, int) type list(T) T list(T) ....

[Article contains additional citation context not shown here]

S. K. Debray. On copy avoidance in single assignment languages. In D. S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393-407, Budapest, Hungary, 1993. The MIT Press.


Practical Aspects for a working Compile Time Garbage .. - Mazur, Ross.. (2001)   (3 citations)  (Correct)

....considerable loss of performance due to the run time overhead of garbage collection and the cost of creating new datastructures instead of updating existing ones. Special techniques have been developed to overcome this handicap and to improve the memory usage, both for logic programming languages [4, 13, 20] as for functional languages [11, 23, 17] Some of the approaches depend on a combination of special language constructs and analysis using unique objects [21, 1, 24] some are solely based on compiler analyses [7, 12, 18, 10] and others combine it with special memory layout techniques [23] In ....

....In this work we mainly focus on techniques of reuse selection that were easy to implement in the existing compiler. More theoretical approaches are described in [7] where the concept of reuse maps is used for representing the one one mappings between dead cells and their reuses, and in [4] where a general formulation of the optimization problem at hand is given. After presenting the necessary background terminology in Section 2, we describe the overall structure of the CTGC system in Section 3. Section 4 presents the di erent reuse decisions that were made in orde to obtain a rst ....

[Article contains additional citation context not shown here]

Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393-407, Budapest, Hungary, 1993. The MIT Press.


A Module Based Analysis for Memory Reuse in Mercury - Mazur, Janssens, Bruynooghe (2000)   (3 citations)  (Correct)

.... due to the overhead of creating new data structures (creating a new version of a data structure is typically more expensive than updating an existing one) There has been a lot of research on methods to overcome this handicap and improve the memory management, both for logic programming languages [5, 12, 14], as for functional programming languages [10, 19] Some approaches depend on a combination of special language constructs and analysis [17, 1, 21] others are solely based on compiler analyses [7, 11, 20] At least in logic programming, none of the analysis based methods has reached the maturity ....

Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393-407, Budapest, Hungary, 1993. The MIT Press.


Towards memory reuse in Mercury - Mazur, Janssens, Bruynooghe (1999)   (1 citation)  (Correct)

....but in practice this is quite dicult. Much better would be to have the compiler perform the necessary reasoning for structure reuse. A number of authors have considered this problem 2 Nancy Mazur et al. within single assignment languages, in the context of logic programming languages [6,11,13], as well as functional programming languages [2,9,17,18] Some of the approaches involve special language constructs (such as uniqueness declarations within Mercury) 1,15,21,22] others are based on compiler analyses [7,10] Mulkers et al. 14] have developed such an analysis for Prolog, ....

Saumya K. Debray. On copy avoidance in single assignment languages. In David S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393-407, Budapest, Hungary, 1993. The MIT Press.


Live-structure Analysis for Logic Programming.. - Bruynooghe, Janssens, .. (1996)   (2 citations)  (Correct)

....under the assumption that the outputs will be used by the caller, that the call is the last use of the inputs, and that no aliases exist between the arguments. ffl The compiler analyses which data structures available for reuse can be reused in a construction statement (Reuse has been studied by [8, 6]) ffl When reuse is possible, constraints can be derived on the LIVE 0 and ALIAS components which can be imported from the caller to allow reuse. Versions of the predicate with different levels of reuse (always including a version without reuse) can be generated together with the constraints. ....

S. K. Debray. On copy avoidance in single assignment languages. In D. S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393--407, Budapest, Hungary, 1993. The MIT Press.


Optimization of Mercury programs - Taylor (1998)   (3 citations)  (Correct)

....is made shared on every execution path. If the compiler cannot guarantee this, a heap cell must be allocated. 6.3.2 Choosing which cell to reuse When the structure reuse pass finds a construction unification, it must choose which dead cell, if any, should be used for the construction. Debray [5] gives an algorithm for choosing a cell for each construction given a bipartite graph describing which constructions could use which cells, and shows that an optimal solution to the problem is NP complete. A polynomial time heuristic algorithm is given. In many cases, even this is overkill. For ....

....an optimal solution to the problem is NP complete. A polynomial time heuristic algorithm is given. In many cases, even this is overkill. For most data structures which can be destructively updated there is one obvious candidate to reuse the old cell, so the complexity of the algorithm given in [5] is unnecessary. We have chosen not to implement this since it would increase the cost and complexity of this pass of the compiler with possibly very little gain over a simpler algorithm. In most cases where structure reuse is crucial for performance there will be very few cells to reuse and the ....

[Article contains additional citation context not shown here]

Saumya Debray. On copy avoidance in single assignment languages. In Proceedings of the Tenth International Conference on Logic Programming, pages 393--407, 1993.


Live-structure Analysis for Logic Programming Languages with.. - Bruynooghe (1996)   (2 citations)  (Correct)

....E and L, the top level list cell will never be accessed again. It is a dead cell garbage and can be reused. In particular, if its location is preserved, it can be reused for the construction L3 = EjL 0 ] How reuse is done, is not our concern here, it has been studied by other authors [9, 7]. Our goal is to indicate that, in the program point following the selection, the top level list cell of L1 is garbage. The liveness analysis in [15] is in fact a forward liveness analysis. Backtracking was handled by suggesting that overwritten values should be trailed. Until now, nobody seems to ....

S. K. Debray. On copy avoidance in single assignment languages. In D. S. Warren, editor, Proceedings of the Tenth International Conference on Logic Programming, pages 393--407, Budapest, Hungary, 1993. The MIT Press.


A Practical Approach to Structure Reuse of Arrays in Single.. - Andreas Kagedal (1997)   (5 citations)  Self-citation (Debray)   (Correct)

....be carried out in place wherever possible. All of these involve compiler analyses of different degrees of complexity and precision, with the drawbacks discussed in Section 1. The related problem of how best to reuse structures, given that we know which structures to reuse, is considered by Debray [7] and Winsborough [27] A very different approach to the aggregate update problem involves the development of language constructs aimed specifically at supporting a style of programming that allows the compiler to determine, without excessive effort, updates that can be implemented destructively. ....

S. K. Debray, "On Copy Avoidance in Single Assignment Languages", Proc. Tenth International Conference on Logic Programming, Budapest, Hungary, June 1993, pp. 393--407.

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