74 citations found. Retrieving documents...
P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Denmark, 1988.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Eta-Redexes in Partial Evaluation - Palsberg   (Correct)

....[12] Exploiting the results of such a program analysis would make it possible to automate The Trick. In fact, a program analysis determining finite ranges of values that may occur at a program point does enable The Trick. For example, control flow analysis [24] also known as closure analysis [23]) determines a conservative approximation of which # abstractions can give rise to a closure that may occur at an application site. The application site can be transformed into a case expression listing all the possible # abstractions and performing a first order call to the corresponding ....

Peter Sestoft. Replacing function parameters by global variables. In Proc. Conference on Functional Programming Languages and Computer Architecture, pages 39--53, 1989.


Design and Correctness of Program Transformations Based.. - Banerjee, Heintze.. (2001)   (6 citations)  (Correct)

....first order language. We first show that defunctionalization is correct; using this proof and common semantic techniques, we then show how two program transformations flow based inlining and lightweight defunctionalization can be proven correct. 1 Introduction Control flow analysis (CFA) [20, 37, 38] is a program analysis that computes an approximation to the set of functions or methods that may be called at a call site. CFA s usefulness stems from the style of programming in functional and object oriented languages. Typically, programs in such languages have small basic blocks and use ....

....limit the applicability of standard intraprocedural optimizations [2, 25] and increase the importance of interprocedural optimizations. CFA enables interprocedural optimizations, and so is used frequently [7, 9, 10, 17, 19, 38, 41, 46] The correctness of CFA itself has been widely studied [15, 18 20, 28 30, 37, 38], but little is known about how to prove the correctness of CFA based transformations. An analogous situation for dataflow analysis and dataflow analysis based transformations was recognized and addressed in the 1980s [27] The correctness proofs that we know of, notably those of Wand and his ....

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, University of Copenhagen, Denmark, October 1988.


A Partial Evaluator for the Untyped Lambda Calculus - Gomard, Jones (1991)   (93 citations)  (Correct)

....( x . body) arg is trivial if x appears at most once in body. The store is explicitly passed around as a parameter, but since the program is single threaded in the store variables [Schmidt 1985] these could all be replaced by one global variable. Such a transformation is called globalization [Sestoft 1989]. With the store arguments removed the residual program would almost look like (nested) assembly code. 4.3 An Example of Compiler Generation When mix is applied to itself and the Tiny interpreter, a compiler from Tiny to lambda calculus is generated. When we examine the structure of the ....

....Scheme where user named functions are specialized with respect to higher order values [Bondorf 1990] This ability makes Bondorf and Danvy s system more powerful than ours, the price being that it is far more complicated. The system begins with a BTA that uses a closure analysis along the lines of [Sestoft 1989], prior to a traditional abstract interpretation based binding time analysis. The closure analysis yields control ow information that is used to determine which program parts must be dynamic as a consequence of something else being dynamic. Several other static program analyses are performed, for ....

[Article contains additional citation context not shown here]

P. Sestoft, Replacing Function Parameters by Global Variables, in Functional Programming Languages and Computer Architecture, London, September 89, ACM Press and Addison-Wesley, 1989.


A Modular, Extensible Proof Method for Small-step Flow Analyses - Wand, Williamson   (Correct)

....We illustrate the extensibility of the new method by showing the correctness of an analysis for the Abadi Cardelli object calculus under small step semantics. 1 Introduction Palsberg [8] was the rst to consider the correctness of 0CFA analysis [11] with respect to arbitrary reduction. Sestoft [9, 10] had shown the correctness of 0CFA with respect to call by value and call by name evaluation, using an evaluation semantics for the former and the Krivine machine for the latter. Palsberg attempted to show that 0CFA was correct with respect to small step semantics under arbitrary reduction; ....

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, University of Copenhagen, Copenhagen, 1989.


Analyses that Distinguish Different Evaluation Orders or.. - Wand (2002)   (Correct)

....in figure 1. Our goal is to find analyses that will distinguish between call by name, callby value, and unrestricted b reduction. Work supported by the National Science Foundation under grants numbered CCR 9404646 and CCR 9629801. Author Language or Reduction Order Semantics Sestoft 89[Ses89] CBV Big Step Closure Semantics Sestoft 91[Ses91] CBN Small Step Closure Semantics Shivers 91[Shi91] CPS Denotational Closure Semantics Palsberg Schwartzbach 95[PS95] CBV Big Step Closure Semantics Palsberg Schwartzbach 95[PS95] CBN Big Step Closure Semantics Flanagan Felleisen 95[FF95] ....

Peter Sestoft. Replacing function parameters by global variables. Master 's thesis, DIKU, University of Copenhagen, Copenhagen, 1989. 12


On Static and Dynamic Control-Flow Information in Program.. - Damian (2001)   (Correct)

....control flow graphs. Shivers designed and proved the semantic correctness of a control flow analysis for CPS Scheme [112] presenting at the same time several direct applications of control flow analysis such as induction variable elimination, type recovery and super #. Sestoft s closure analysis [111] uses abstract interpretation to extract the control flow information as a least fixed point of a functional; Bondorf s thesis [12] makes use of control flow information to perform defunctionalization [35, 103] Recent developments have introduced the specification of a control flow analysis ....

Peter Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Computer Science Department, University of Copenhagen, Copenhagen, Denmark, October 1988.


Abstract Interpretation in the Operational Semantics Hierarchy - Schmidt (1997)   (3 citations)  (Correct)

....also that the recursion, a = fog [ a, can be solved in the complete lattice P(AbsVal) the computational ordering) giving a = fog there is no need for and no need for an approximation ordering upon AbsVal. When sets of closures appear in an a.i. the analysis is called a closure analysis [29, 30, 50, 53, 60, 61]. The complexity of a closure analysis is high, and a major challenge is finding efficient, safe simulations. To simplify notation, we represent a closure by a hae; i pair, where is a unique label of a rec phrase, rec f x:e. Next, we ignore primitive values in this discussion and define ....

....n = Label P(AbsEnv n ) AbsEnv 0 = ffflg AbsEnv i 1 = Id AbsVal i AbsVal i = ffflg [ AbsClos i The set AbsClos n limits the depth to n of the closures that can be produced by the analysis, ensuring that the AbsVal set is finite. Surprisingly useful analyses can be performed for n = 0 [60, 61], but a complication to limiting the depth of closures is that a function application might be forced to synthesize an environment for the closure 7 ffflg when the closure is applied to an argument. Indeed, this is always the case for 0 CFA. There are a variety of safe methods for ....

P. Sestoft. Replacing function parameters by global variables. In Proc. Functional Programming and Computer Architecture, pages 39--53. ACM Press, 1989.


Lambda-Dropping: Transforming Recursive Equations into.. - Danvy, Schultz (1999)   (8 citations)  (Correct)

....its two parameters: f:let g = x: f:f (x x f) in g g f Eta reducing this term yields Turing s xpoint operator [6] 5. 4 Detecting global variables Following Schmidt s initial impetus on single threading [38] Sestoft has investigated the detection of global variables in recursive equations [41]. Likewise, Fradet has investigated the detection of single threaded variables using continuations [19] Such variables come in two avors: global, read only variables, and updatable, single threaded variables. Lambda dropping reveals global read only variables by localizing blocks. N.B. Many of ....

Peter Sestoft. Replacing function parameters by global variables. In Joseph E. Stoy, editor, Proceedings of the Fourth International Conference on Functional Programming and Computer Architecture, pages 39-53, London, England, September 1989. ACM Press. 56


Lambda-Dropping: Transforming Recursive Equations into.. - Danvy, Schultz (1999)   (8 citations)  (Correct)

....without considering the applications of higher order functions that have been passed as parameters. Similarly, higher order programs can be lambda dropped while only considering the rstorder function applications. As illustrated in Section 5. 3, going further would require a control ow analysis [40, 43]. Introducing higher order functions into our language thus only entails slight changes to the speci cations and algorithms for lambda lifting and lambda dropping. For higher order programs, we generalize the syntax of Figure 1 by allowing functions to appear as arguments and variables to be ....

Peter Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Computer Science Department, University of Copenhagen, Copenhagen, Denmark, October 1988.


Assessing the Overhead of ML Exceptions by Selective CPS . . . - Kim, Yi, Danvy (1998)   (6 citations)  (Correct)

....Annotate( of a program is the one resulting from marking each sub expression e either as exceptional ( e) or as normal ( e) based on the rules R(Exn analysis ; Closure analysis ) in Figure 7. For languages with exceptions that can carry functions, existing works [Shi91, HM97, JW96, Ses89] cannot be used because exception analysis and closure analysis are interdependent in ML. We therefore had to devise our own closure analysis. 13 2 Exn analysis (e) handle e 1 x: e 2 dcon ee ddecon ee draise ee de 1 e 2 e x: e 2 Closure analysis (e 1 ) ....

Peter Sestoft. Replacing function parameters by global variables. In Joseph E. Stoy, editor, Proceedings of the Fourth International Conference on Functional Programming and Computer Architecture, pages 39-53, London, England, September 1989. ACM Press.


Eta-Expansion does the Trick - Danvy, Malmkjaer, Palsberg (1996)   (2 citations)  (Correct)

....[18] Exploiting the results of such a program analysis would make it possible to automate The Trick. In fact, a program analysis determining finite ranges of values that may occur at a program point does enable The Trick. For example, controlflow analysis [38] also known as closure analysis [37]) determines a conservative approximation of which abstractions can give rise to a closure that 5 may occur at an application site. The application site can be transformed into a case expression listing all the possible abstractions and performing a first order call to the corresponding ....

Peter Sestoft. Replacing function parameters by global variables. In Stoy [40], pages 39--53.


Transforming Recursive Equations into Programs with Block.. - Danvy, Schultz (1997)   (Correct)

....its two parameters: f:let g = x:f:f (x x f) in g g f Eta reducing this term yields Turing s fixpoint operator [5] 6. 4 Detecting global variables Following Schmidt s initial impetus on single threading [31] Sestoft has investigated the detection of global variables in recursive equations [33], and Fradet, the detection of single threaded variables using continuations [16] Such variables come in two flavors: global, read only variables, and updatable, single threaded variables. Lambda dropping reveals read only global variables by localizing blocks. N.B. Many of these global ....

Peter Sestoft. Replacing function parameters by global variables. In Joseph E. Stoy, editor, Proceedings of the Fourth International Conference on Functional Programming and Computer Architecture, pages 39--53, London, England, September 1989. ACM Press.


Lambda-Dropping: Transforming Recursive Equations into Programs.. - Danvy (1995)   (8 citations)  (Correct)

....two parameters: #f.let g = #x.#f.f (x x f) in g g f Eta reducing this term yields Turing s fixpoint operator [6] 43 5. 4 Detecting global variables Following Schmidt s initial impetus on single threading [38] Sestoft has investigated the detection of global variables in recursive equations [41]. Likewise, Fradet has investigated the detection of single threaded variables using continuations [19] Such variables come in two flavors: global, read only variables, and updatable, single threaded variables. Lambda dropping reveals global read only variables by localizing blocks. N.B. Many ....

Peter Sestoft. Replacing function parameters by global variables. In Joseph E. Stoy, editor, Proceedings of the Fourth International Conference on Functional Programming and Computer Architecture, pages 39--53, London, England, September 1989. ACM Press.


Lambda-Dropping: Transforming Recursive Equations into Programs.. - Danvy (1995)   (8 citations)  (Correct)

....without considering the applications of higher order functions that have been passed as parameters. Similarly, higher order programs can be lambda dropped while only considering the firstorder function applications. As illustrated in Section 5. 3, going further would require a control flow analysis [40,43]. Introducing higher order functions into our language thus only entails slight changes to the specifications and algorithms for lambda lifting and lambda dropping. For higher order programs, we generalize the syntax of Figure 1 by allowing functions to appear as arguments and variables to be ....

Peter Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Computer Science Department, University of Copenhagen, Copenhagen, Denmark, October 1988.


Context-Sensitive Interprocedural Points-to Analysis in.. - Emami, Ghiya, Hendren (1994)   (220 citations)  (Correct)

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

P. Sestoft. Replacing function parameters by global variables. In Conference on Functional Programming Languages and Computer Architecture, pages 39--53, London, September 1989. ACM Press.


On Static and Dynamic Control-Flow Information in Program.. - Damian (2001)   (Correct)

....control flow graphs. Shivers designed and proved the semantic correctness of a control flow analysis for CPS Scheme [112] presenting at the same time several direct applications of control flow analysis such as induction variable elimination, type recovery and super #. Sestoft s closure analysis [111] uses abstract interpretation to extract the control flow information as a least fixed point of a functional; Bondorf s thesis [12] makes use of control flow information to perform defunctionalization [35, 103] 1.1 Background 5 Recent developments have introduced the specification of a ....

Peter Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Computer Science Department, University of Copenhagen, Copenhagen, Denmark, October 1988.


A New Approach to Control Flow Analysis - Malacaria, Hankin (1998)   (5 citations)  (Correct)

....control ow in rst order languages is almost trivial. It is a much more dicult problem for higher order languages where functions may be passed as parameters and invoked from anywhere in the program. Over recent years there has been intense activity in designing CFAs for higherorder languages [4, 5, 12, 16 18, 20, 22, 23, 26, 27]. There has been convergence on the de nition of the fundamental notion of CFA which has been dubbed standard CFA by [14] A number of algorithms have been proposed for standard CFA. The best algorithms are cubic; recent work by Heintze and McAllester suggests that this situation cannot be ....

....[18] and the Geometry of Interaction Machine in the case of Jensen and Mackie [17] Abstract Semantics: In this approach, closure information is collected by a non standard semantics, which is sometimes presented as an abstract interpretation of the standard semantics. Two early examples are [5, 26] which use non standard denotational semantics. Shivers [27] and Jagannathan and Weeks [16] abstract from an operational semantics. Constraint based: A number of authors have used intensional semantics (usually operational semantics) to generate constraints that describe control ow. Heintze ....

Sestoft P. Replacing function parameters by global variables. In Proc FPCA'89, ACM Press, 1989.


A Constraint-based Partial Evaluator for Functional Logic.. - Lafave (1998)   (6 citations)  (Correct)

....P ) is less than b. Closure analysis for functional language specialisation has been studied extensively; this is a related method for computing an approximation of the set of functions to which an expression e 1 in an 4. 8 Extensions of the Procedure 118 application e 1 e 2 could evaluate [Ses88b] 4.8.5 Handling Non linear Expressions Most specialisation algorithms for functional programs restrict the transformation of non linear expressions in order to guarantee an improvement in efficiency for the residual program. This restriction prevents duplicating computations during ....

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Denmark, 1988.


Higher-Order Value Flow Graphs - Christian Mossin Diku (1997)   (1 citation)  (Correct)

.... problems can be answered in linear time and all sources all uses can be answered in quadratic time (in the size of the flow graph, which is equivalent to the size of the explicitly typed program) On simply typed programs, the precision of the resulting analysis is equivalent to closure analysis [10,11,8]. In practice, it is a reasonable assumption that typed programs are only bigger than their untyped equivalent by a constant factor, hence this is an asymptotic improvement over previous algorithms. We extend the analysis to handle polymorphism, sum types and recursive types. As a consequence, the ....

....Single queries (single source or single sink data flow) can be performed on this graph by standard reachability algorithms in linear time and, similarly, full flow information can be obtained in quadratic time. On simply typed programs our analysis is equivalent in strength to closure analysis [10,11] and the constraint based analysis of Palsberg [8] Since explicitly typed programs are typically only a constant bigger than the underlying untyped program, this gives (under the assumption that all types are bounded by a constant) an asymptotic improvement over previously published algorithms. ....

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, University of Copenhagen, Denmark, October 1988.


Selective and Lightweight Closure Conversion - Steckler, WAND (1996)   (32 citations)  (Correct)

....perform closure analysis, a phrase coined by Sestoft. A closure analysis computes a set of procedures to which an expression may evaluate. In our analysis, the transitions from a value proposition associated with an occurrence represent the set of procedures to which that occurrence may evaluate. Sestoft [Sestoft 1988] originally used a closure analysis to prove the correctness of a transformation that replaces parameter passing by assignment to global variables. Bondorf adapted Sestoft s analysis for a subset of Scheme [Bondorf 1991] In Shivers dissertation, he presented two analyses called 0CFA and 1CFA for ....

Sestoft, P. 1988. Replacing function parameters by global variables. M.S. thesis, DIKU, University of Copenhagen.


Interprocedural Pointer Alias Analysis - Burke, Carini, Choi (1997)   (3 citations)  (Correct)

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

Sestoft, P. 1989. Replacing function parameters by global variables. In Conference on Functional Programming Languages and Computer Architecture. ACM Press, London, 39--53.


Preserving Information during Online Partial Evaluation - Ruf, Weise (1992)   (Correct)

....be expensive; because the relationship between lambda and call expressions is data dependent, it is both a dataflow and a control flow problem. This problem has been treated in detail by Shivers [41] and Harrison [20] while simpler, less accurate solutions are used by Sestoft s closure analysis [40], Bondorf s variant of this analysis [4] and Consel s higher order binding time analysis [12] All of these analyses compute correct solutions; our concern is with accuracy. If an overly large set of potential call sites is determined for a lambda expression, the approximation computed for the ....

.... for Scheme programs has been investigated extensively in the context of parallelization by Harrison [20] and in the context of program optimization by Shivers [41] Existing applications of control flow analysis to program specialization are Bondorf s application [4] of Sestoft s closure analysis [40] and Consel s higher order binding time analysis [12] Both of these 44 analyses operate on source programs prior to specialization; we believe ours is the first application of CFA technology during specialization. 5.5 Compilers The optimizing compiler technology of Chambers and Ungar [10] is ....

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, University of Copenhagen, 1988. Published as DIKU Student Report 88-7-2.


Analysis and Efficient Implementation of Functional Programs - Sestoft (1991)   (43 citations)  Self-citation (Sestoft)   (Correct)

No context found.

P. Sestoft. Replacing function parameters by global variables. In Fourth International Conference on Functional Programming Languages and Computer Architecture, Imperial College, London, pages 39--53. ACM Press and Addison-Wesley, September 1989.


Analysis and Efficient Implementation of Functional Programs - Sestoft (1991)   (43 citations)  Self-citation (Sestoft)   (Correct)

No context found.

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, University of Copenhagen, Denmark, October 1988.


A Constraint-based Partial Evaluator for Functional - Logic Programs And   (Correct)

No context found.

P. Sestoft. Replacing function parameters by global variables. Master's thesis, DIKU, Denmark, 1988.

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