| A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In Symp. on Princ. of Prog. Lang., 1990. |
....is the incorporation of client analysis information into procedure level pointer alias summaries [81] Clientdriven pointer analyses may also be able to selectively apply more aggressive approaches to obtaining precision, such as those of [68] 4. 6 Heap Modeling Shape analysis algorithms [53, 43, 9, 19, 36, 35, 18, 74, 28, 29, 87, 88, 89, 103, 21, 54] have demonstrated high precision, over schemes that name objects based on allocation site (as in [47, 44, 83, 43, 9] but their scalability to even medium programs is uncertain. Mooly Sagiv summarizes the current state of the eld: Although I believe we are making good progress, in all honesty, ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional speci cations. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 157-168, Jan. 1990.
....to reduce the size of the state space explored by a model checker. The algorithm is intraprocedural, and does not address the problem of analyzing programs with multiple procedures. 9. 2 Escape Analysis There has been a fair amount of work on escape analysis in the context of functional languages [4, 3, 29, 14, 15, 5, 19]. The implementations of functional languages create many objects (for example, cons cells and closures) implicitly. These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the ....
....These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the lifetimes of these dynamically created objects, and to perform optimizations to improve their memory management. Deutsch [14] describes a lifetime and sharing analysis for higher order functional languages. His analysis rst translates a higher order functional program into a sequence of operations in a low level operational model, then performs an analysis on the translated program to determine the lifetimes of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional speci cations. In Proceedings of the 17th Annual ACM Symposium on the Principles of Programming Languages, pages 157-168, San Francisco, CA, January 1990. ACM, ACM, New York.
....An analogous problem of control flow analysis [40] has been studied in the domain of higher order languages. Here, the possibility of creating functions dynamically (for example, using lambda in Scheme) poses additional complexity. Different approaches to solve this problem have been proposed [10, 18, 35, 39, 40, 41]. In object oriented languages, call graph analysis becomes non trivial due to inheritance and function overloading. The method invoked from a call site depends on the type of the receiver, and static type determination is used to estimate control flow. Type analysis techniques have been developed ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 157--168, January 1990.
....create is given in Section A.4. necessary to summarize all incarnations of recursive procedures in a bounded way. Shape analysis algorithms can analyze linked lists in a fairly precise way, e.g. see [SRW99] For an interprocedural analysis, we therefore follow the approach suggested in [JM82, Deu90] by summarizing activation records in essentially the same way linked list elements are summarized. By itself, this technique does not retain the precision we would like. The problem is with the (abstract) values obtained for local variables after a call. The abstract execution of a procedure call ....
....the parametric framework descried in [SRW99, LAS00] That framework allows the generation of intraprocedural shape analysis algorithms based on an appropriate speci cation. We show that their framework can generate quite precise interprocedural algorithms too. We follow the approach suggested in [JM82, Deu90] and summarize activation records in essentially the same way that linked list elements are summarized. By representing the call site in each activation record the analysis algorithm is capable of encoding the calling context, too. This approach bears some similarity to the call string approach of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specications. In Symp. on Princ. of Prog. Lang., pages 157-168, 1990. 55
....[CGS 99] and Whaley and Rinard [WR99] present escape analyses for Java based on building points to style graphs. These analyses achieve greater precision, and allocate more objects on the stack, at the expense of a much more complex analysis. Direct use of alias and points to analysis [CWZ90, Deu90, Hic93, JM81, SF96, VHU92] and other miscellaneous techniques [Bar77, BS93, JM90, JL89, Sch75] have also been considered for compiletime garbage collection. These analyses are generally expensive and their e#ectiveness is unclear. Dolby and Chien s object inlining techniques [DC98] can also be ....
Alan Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In ACM-SIGPLAN ACM-SIGACT, editor, Conference Record of the 17th Annual ACM Symposium on Principles of Programming Languages (POPL '90), pages 157-- 168, San Francisco, CA, USA, January 1990. ACM Press.
....case of interprocedural analyses, it is also necessary to summarize all incarnations of recursive procedures in a bounded way. Shape analysis algorithms can analyze linked lists in a fairly precise way, e.g. see [15] For an interprocedural analysis, we therefore follow the approach suggested in [4, 11] by summarizing activation records in essentially the same way linked list elements are summarized. By itself, this technique does not retain the precision we would like. The problem is with the (abstract) values obtained for local variables after a call. The abstract execution of a procedure call ....
....enough information about the values of local variables, an analysis must make very conservative assumptions. These assumptions lead to imprecise results and performance deteriorates as well, since every potential value of a local variable must be considered. We follow the approach suggested in [4, 11] and summarize activation records in essentially the same way that linked list elements are summarized. By representing the call site in each activation record the analysis algorithm is capable of encoding the calling context, too. This approach bears some similarity to the call string approach of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specications. In Symp. on Princ. of Prog. Lang., 1990.
....reduce the size of the state space explored by a model checker. The algorithm is intraprocedural, and does not address the problem of analyzing programs with multiple procedures. 10.2 Escape Analysis There has been a fair amount of work on escape analysis in the context of functional languages [4, 3, 29, 14, 15, 5, 19]. The implementations of functional languages create many objects (for example, cons cells and closures) implicitly. These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the ....
....These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the lifetimes of these dynamically created objects, and to perform optimizations to improve their memory management. Deutsch [14] describes a lifetime and sharing analysis for higher order functional languages. His analysis first translates a higher order functional program into a sequence of operations in a low level operational model, then performs an analysis on the translated program to determine the lifetimes of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Proceedings of the 17th Annual ACM Symposium on the Principles of Programming Languages, pages 157--168, San Francisco, CA, January 1990. ACM, ACM, New York.
.... Wei80, ZRL96, HP98, LH99, RC00, Das00, FRD00, FFA00] There are flow sensitive techniques as well which calculate program point specific aliases [Coo89, LR92, CBC93, MLR 93, EGH94, GH98, WL95, Ruf95, HA90, SFRW90, CRL99] Other work concentrates on aliases in higher order functional languages [Deu90, NPD87] SSA form is used to transform the program in a way that e#ectively adds adjustable flow sensitivity to a flow69 insensitive pointer alias analysis in [HH98] no empirical results are given and it is not clear if this technique is scalable. Newer work calculates pointer aliasing in ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 157--168, January 1990.
.... Several concentrate on aliases in heap storage [HPR89, CWZ90, Deu94, HN90, EGH94, JM82, LH88, SRW96] Others calculate program wide (flow insensitive) aliases [Cou86, Gua88, BCCH94, And94, SH97, Ste95, Wei80, ZRL96] Still other work concentrated on aliases in higher order functional languages [Deu90, NPD87] Incremental algorithms update data flow information after a program change rather than recomputing it from scratch, with the belief that the change impact will be limited and that the update cost will be proportional to the size of the impact. Given the expense of calculating aliases ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 157--168, January 1990.
....When Scheme C, Gambit C, and Bigloo are run without these options, the ratio of run times relative to Stalin are even more favourable to Stalin than the results presented in table V. 5. CONCLUSION A number of researchers have pursued work along the lines of the work presented in this paper. Deutsch [1990], Emami and Hendren [1994] and Jagannathan et al. 1998] present aliasing analyses that are based on ow analysis. Henglein [1992] Wand and Steckler [1994] Steckler [1994b] Steckler [1994c] Steckler [1994a] Minamide et al. 1996] and Steckler and Wand [1997] present alternate approaches to ....
Deutsch, A. 1990. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specications. In Proceedings of the 17 th Annual ACM Symposium on Principles of Programming Languages. 157-168.
....created (for example, one cannot say f = cons(x,x) and the sharing that can occur within a list. Orbit, an optimizing compiler for Scheme, uses a simple first order escape analysis to stack allocate closures [15] Other analyses for optimizing storage allocation were proposed in [14, 5] Deutsch [8] presents a lifetime and sharing analysis for higher order languages. While the goals of the paper seem to be similar to ours, the approach is very di#erent. The analysis consisted of defining a lowlevel operational model for a higher order functional language, translating a program into a ....
....The result is then applicable to all possible instances of that function. 6 Application of Escape Analysis As mentioned in the introduction, escape information can be used in a number of other analyses and optimizations. Due to space limitations, we will only sketch them. Several papers [8, 9] have been published on sharing analysis of objects in higher order functional languages (and many papers for first order languages) It turns out that for strict languages (in which the evaluation order is obvious) sharing analysis of lists becomes easy in the presence of escape information. ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Proceedings of the ACM Symposium on Principles of Programming Languages, pp. 157- 168, 1990.
....of the call stack, which is used to name activation records. Other methods [Harrison III 1989; Chow and Harrison 1992] present a naming technique for dynamically allocated objects based on procedure strings, a generalization of call strings that includes the call stack and its evolution. Deutsch [1990] names dynamically allocated objects based on an arbitrary abstraction of the machine state at allocation time. Hudak [1986] presents a technique for naming dynamically allocated objects based on the top k call stack elements. We do not encode the interprocedural context in the names of ....
....are first class objects, control flow analysis includes a function binding analysis that is essentially equivalent to function pointer analysis. Solutions for performing such a control flow analysis are given in [Shivers 1988; Neirynck et al. 1989; Sestoft 1989; Harrison III 1989; Mogensen 1989; Deutsch 1990]. Chow and Harrison [1994] present an algorithm for analyzing programs with pointers and closures that is conceptually similar to our algorithm for analyzing function pointers. Our iterative algorithm uses an approximation of the PCG to perform an analysis that either indicates convergence or ....
Deutsch, A. 1990. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In 17th Annual ACM Symposium on the Principles of Programming Languages. San Francisco, 157--168.
....complex. In addition, the programmer must sometimes modify the program to avoid leaking memory. To perform these modifications the programmer must understand the region inference process. Ruggieri and Murtagh [RM88] propose a similar but less general system. Alias and points to analysis [CWZ90, Deu90, Hic93, JM81, SF96, VHU92] and other miscellaneous techniques [Bar77, BS93, JM90, JL89, Sch75] have also been considered for compile time garbage collection. These analyses are mostly expensive and their e#ectiveness is unclear. McDowell instrumented a Java virtual machine to find the number of ....
Alan Deutsch. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In ACM-SIGPLAN ACM-SIGACT, editor, Conference Record of the 17th Annual ACM Symposium on Principles of Programming Languages (POPL '90), pages 157--168, San Francisco, CA, USA, January 1990. ACM Press.
....occurring in the program and for explicitly propagating environments; for the side e ects this gives rise to a ow sensitive analysis and for the environments we might coin the term scope sensitive. The analysis makes use of mementoes (for expressing context information in the manner of [5]) that are general enough that both call string based approaches (e.g. 23, 25] and dependent data approaches (in the manner of assumptionsets [20, 14] can be obtained by merely approximating the space of mementoes; this gives rise to a context sensitive analysis. The mementoes themselves are ....
....d is the memento at the de nition point of the function. Note that this is well de ned (in the manner of context free grammars) composite mementoes are constructed from simpler mementoes and in the end from the initial memento . This de nition of mementoes is akin to the contexts considered in [5]; in Section 5 we shall show how the set can be simpli ed into something more tractable. R d F ; R c F 2 d RCache F = Pnt F d Env MF 2 d MCache F = Pnt F P(Mem) WF 2 d WCacheF = PntF [ Pnt F ) c Val SF 2 d SCache F = Pnt F [ Pnt F ) d Store Table 2. Caches. Example 1. ....
A. Deutsch. On Determining Lifetime and Aliasing of Dynamically Allocated Data in Higher Order Functional Specications. In Proc. POPL '90, pages 157-169. ACM Press, 1990.
....function call, the set of functions it could be bound to. In general where functions are first class objects, control flow analysis includes a function binding analysis that is essentially equivalent to function pointer analysis. Solutions for performing such a control flow analysis are given in [Deutsch 1990; Harrison 1989; Mogensen 1989; Neirynck et al. 1989; Sestoft 1989; Shivers 1988] Chow and Harrison [1994] present an algorithm for analyzing programs with pointers and closures that is conceptually similar to our algorithm for analyzing function pointers. Our iterative algorithm uses an ....
Deutsch, A. 1990. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In 17th Annual ACM Symposium on the Principles of Programming Languages. San Francisco, 157--168.
....edge cannot be statically determined. A simple example is given by normalized Prolog programs as in Section 3 extended with computed goals, that is, goals which themselves can be variables. Other instances of this scheme are procedure parameters as in Pascal [3] higher order functional languages [19] or dynamic method dispatches as in Java. Such dynamically determined procedure calls, however, can be dealt with through a minor extension of the PDA approach. We simply allow our PDA to select the procedures to be called depending on the current state. Technically, we enhance the functionality ....
Alain Deutsch. On Determining Lifetime and Aliasing of Dynamically Allocated Data in Higher-Order Functional Specifications. In Proceedings of 17th ACM Symposium on Principles of Programming Languages (POPL), pages 157--168. ACM Press, 1990.
....to reduce the size of the state space explored by a model checker. The algorithm is intraprocedural, and does not address the problem of analyzing programs with multiple procedures. 9. 2 Escape Analysis There has been a fair amount of work on escape analysis in the context of functional languages [4, 3, 29, 14, 15, 5, 19]. The implementations of functional languages create many objects (for example, cons cells and closures) implicitly. These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the ....
....These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the lifetimes of these dynamically created objects, and to perform optimizations to improve their memory management. Deutsch [14] describes a lifetime and sharing analysis for higher order functional languages. His analysis first translates a higher order functional program into a sequence of operations in a low level operational model, then performs an analysis on the translated program to determine the lifetimes of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Proceedings of the 17th Annual ACM Symposium on the Principles of Programming Languages, pages 157--168, San Francisco, CA, January 1990. ACM, ACM, New York.
....procedure [32] A flow insensitive, constraint based analysis with polymorphic recursion may be able to separate the instantiations and recover this particular kind of precision. 15.4 Escape Analysis There has been a fair amount of work on escape analysis in the context of functional languages [7, 5, 43, 18, 19, 9, 26]. The implementations of functional languages create many objects (for example, cons cells and closures) implicitly. These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the ....
....These objects are usually allocated in the heap and reclaimed later by the garbage collector. It is often possible to use a lifetime or escape analysis to deduce bounds on the lifetimes of these dynamically created objects, and to perform optimizations to improve their memory management. Deutsch [18] describes a lifetime and sharing analysis for higher order functional languages. His analysis first translates a higher order functional program into a sequence of operations in a low level operational model, then performs an analysis on the translated program to determine the lifetimes of ....
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Proceedings of the 17th Annual ACM Symposium on the Principles of Programming Languages, pages 157--168, San Francisco, CA, January 1990. ACM, ACM, New York.
No context found.
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In Symp. on Princ. of Prog. Lang., 1990.
No context found.
Alain Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications (extended version). Research Report LIX/RR/90/11, LIX, Ecole Polytechnique, 91128 Palaiseau Cedex, France.
No context found.
Deutsch, A.: On determining lifetime and aliasing of dynamically allocated data in higherorder functional specifications. In: Princ. of Prog. Lang. (1990) 157--168
No context found.
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages, POPL'90, pages 157--168, 1990.
No context found.
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional speci cations. In POPL 1990, pages 157-168, 1990.
No context found.
A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional speci cations. In Proceedings of the 17th Annual ACM Symposium on the Principles of Programming Languages, pages 157-168, San Francisco, CA, January 1990. ACM, ACM, New York.
No context found.
A. Deutsch, On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications, in 17 th Annual ACM Symp. on Principles of Programming Languages POPL'90, Jan. 90, pp. 157-168.
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