## On Static and Dynamic Control-Flow Information in Program Analysis and Transformation (2001)

Citations: | 13 - 6 self |

### BibTeX

@TECHREPORT{Damian01onstatic,

author = {Daniel Damian and Daniel Damian},

title = {On Static and Dynamic Control-Flow Information in Program Analysis and Transformation},

institution = {},

year = {2001}

}

### OpenURL

### Abstract

interpretation and fixed-point computation . . . 71 5.1.2 The time-stamping technique . . . . . . . . . . . . . . . . 72 5.2 The time-stamps-based approximation algorithm . . . . . . . . . 73 5.2.1 A class of recursive equations . . . . . . . . . . . . . . . . 73 5.2.2 The intuition behind time stamps . . . . . . . . . . . . . 74 5.3 A formalization of the time-stamps-based algorithm . . . . . . . 75 5.3.1 State-passing recursive equations . . . . . . . . . . . . . . 75 5.3.2 Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.3.3 Complexity estimates . . . . . . . . . . . . . . . . . . . . 78 5.4 An extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Appendix 5.A Operational specification . . . . . . . . . . . . . . . . . 81 6 Static Transition Compression 85 6.2 Source and target languages . . . . . . . . . . . . . . . . . . . . . 86 6.2.1 An unstructured target language . . . . . . . . . . . . . . 86 6.2.2 A structured source language . . . . . . . . . . . . . . . . 86 6.3 A context-insensitive translation . . . . . . . . . . . . . . . . . . 87 6.3.4 Chains of jumps . . . . . . . . . . . . . . . . . . . . . . . 91 6.4 Context awareness . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.4.1 Continuations and duplication . . . . . . . . . . . . . . . 92 6.4.2 Towards the right thing . . . . . . . . . . . . . . . . . . . 92 6.5 A context-sensitive translation . . . . . . . . . . . . . . . . . . . 93 6.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

### Citations

400 | Precise interprocedural dataflow analysis with applications to constant propagation
- Sagiv, Reps, et al.
- 1996
(Show Context)
Citation Context ... with the transition from a program point to another is defined by a monotone function V : (Lab Lab A) # A. Such functions can model, for instance, Sagiv, Reps and Horowitz's environment transformers =-=[108]-=-, but they can also model monotone frameworks [71, 90]. Transition information is added into the already computed analysis information, in a collecting analysis [23, 110] fashion. To model dynamic con... |

351 |
Denotational Semantics: a Methodology for Language Development, Allyn
- Schmidt
- 1986
(Show Context)
Citation Context ...s typed version, the #-calculus has further use as a tool for reasoning about safety properties of languages. Various formal semantics of #-terms have been defined, among them, denotational semantics =-=[109]-=- and operational semantics [99]. A semantics for #-terms usually involves a choice of evaluation strategy, for instance call-byname or call-by-value [98]. A semantics, incorporating an evaluation stra... |

330 | Constant Propagation with Conditional Branches
- Wegman, Zadeck
- 1985
(Show Context)
Citation Context ... commands naturally gives rise to chains of jumps to join their control flow if the translation is context-insensitive. We have pointed out how to avoid generating these chains of jumps. In SSA terms =-=[5, 74, 122]-=-, our translation naturally yields fewer merge points without duplicating contexts. It also generates fewer basic blocks and thus makes it faster to compute an SSA form. Turning to the CPS transformat... |

322 | Control-Flow Analysis of Higher-Order Languages or Taming Lambda
- Shivers
- 1991
(Show Context)
Citation Context ...he program. Early control-flow analyses by Jones and Mycroft [68] extracted minimal 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 int... |

135 | Scalable propagation-based call graph construction algorithms
- TIP, PALSBERG
(Show Context)
Citation Context ...ther direction, observing that the cubic time upper-bound of the constraint-based analysis may still be prohibitive for large programs, other authors propose more tradeo#s between speed and precision =-=[54, 56, 116]-=-. 1.1.4 Partial evaluation and binding-time analysis Partial evaluation [22, 66] is a technique of automatic program specialization. The goal if partial evaluation is to produce more e#cient specializ... |

117 | Continuations: A Mathematical Semantics for Handling Full Jumps. technical monograph prg 11, oxford university computing laboratory
- Strachey, Wadsworth
- 1974
(Show Context)
Citation Context ...r a handle on the control-flow of the program, allowing, for instance, jumps out of the current scope or current procedure, has lead to the introduction of continuations. After Strachey and Wadsworth =-=[114]-=-, continuations are essentially an abstraction of the remainder of the computation. In functional programming languages, one can abstract the context of an expression into a continuation: a function t... |

97 |
G.L.: Rabbit: A compiler for Scheme
- Jr
- 1978
(Show Context)
Citation Context ...r translation naturally yields fewer merge points without duplicating contexts. It also generates fewer basic blocks and thus makes it faster to compute an SSA form. Turning to the CPS transformation =-=[31, 113]-=-, we observe that the issue of chains of jumps arises there in the form of spurious #-redexes such as #v.k v, where k denotes a continuation. These #-redexes appear in the translation of tail calls an... |

84 |
Replacing function parameters by global variables
- Sestoft
- 1989
(Show Context)
Citation Context ...is 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... |

81 |
Compiler Design
- Wilhelm, Maurer
- 1995
(Show Context)
Citation Context ...efore, a standard step in a compiler involves a translation from a structured language to an unstructured language where control flow is expressed only in terms of conditional and unconditional jumps =-=[2, 4, 45, 123]-=-. A translation of structured flow commands as conditional statements and while-loops into an unstructured language of conditional and unconditional jumps is a simple exercise. The resulting translati... |

72 |
The formal semantics of programming languages. Foundations of Computing
- Winskel
- 1993
(Show Context)
Citation Context ...e is defined in Figure 6.2. Structured commands can be atomic commands, sequences of commands, conditional commands, and while loops. Again, their (trace) semantics is state-based and straightforward =-=[124]-=-. 6.3 A context-insensitive translation 87 s # SCom ::= a | s 1 ; s 2 | if b then s 1 else s 2 end | while b do s end a # ACom (atomic commands, same as in Figure 6.1) b # BExp (boolean expressions, s... |

62 | AReflection on Call-by-Value
- Sabry, Wadler
- 1996
(Show Context)
Citation Context ...CPS transformation followed by administrative reductions. Alternative CPS transformations have been developed, at the level of syntactic theories [105], or, non-compositionally, at the level of terms =-=[107]-=-. Recently, Danvy and Nielsen have discovered a one-pass CPS transformation [34, 86] which yields CPS terms without administrative redexes through a compositional first-order translation. This aspects... |

56 |
The essence of functional programming (invited talk
- Wadler
- 1992
(Show Context)
Citation Context ...f pure #-calculus. For instance, programs which may be equivalent in a the setting of the pure #-calculus are no longer equivalent in a setting which allows computational e#ects. The notion of monads =-=[81, 118]-=- has proved to be a useful tool for reasoning about programming languages with computational e#ects. Moggi's computational metalanguage [82] extends the #-calculus and provides a theoretical foundatio... |

37 |
Specifying the Correctness of Binding-Time Analysis
- Wand
- 1993
(Show Context)
Citation Context ...e for the statements annotated as 6 Introduction and Overview dynamic. O#ine partial evaluation based on annotations specified through a two-level #-calculus [66, 88] has been thoroughly investigated =-=[14, 65, 78, 79, 92, 121]-=-. More recently, Hatcli# and Danvy have proven the correctness of a partial evaluator for Moggi's computational metalanguage [50]. The partial evaluator relies on a binding-time analysis through type ... |

33 |
Correctness of procedure representations in higher-order assembly language
- Wand
- 1992
(Show Context)
Citation Context ...ntial reductions: Steele [113] performs all administrative reductions immediately after the CPS transformation. Administrative redexes may be avoided altogether by using a one-pass CPS transformation =-=[3, 31, 120]-=-. The one-pass CPS transformation is defined through a higher-order accumulator. This accumulator expects a term and yields a CPS transformed term. Alternatively, a first-order CPS transformation base... |

33 | Secure information flow and CPS
- Zdancewic, Myers
(Show Context)
Citation Context ...nalyses are used in determining the static/dynamic aspect of program points in partial evaluation [66] (binding-time analyses) or determining the security level of program points and information flow =-=[1, 55, 127]-=- (security analyses). Other analyses determine properties relative to memory management, for instance region inference for higher-order languages [117]. But of crucial importance to analysis of higher... |

26 |
Natural-semantics-based abstract interpretation (preliminary version), Static Analysis
- Schmidt
- 1995
(Show Context)
Citation Context ...rowitz's environment transformers [108], but they can also model monotone frameworks [71, 90]. Transition information is added into the already computed analysis information, in a collecting analysis =-=[23, 110]-=- fashion. To model dynamic control flow, we consider that, at a specific node # and in the presence of already computed analysis information # #, the set of possible future nodes is described by a mon... |

17 |
and Suresh Jagannathan. Polymorphic splitting: an effective polyvariant flow analysis
- Wright
- 1998
(Show Context)
Citation Context ...ed to extend flow analysis to typed intermediate languages [62]. Extensions of the analysis include adding data-flow information or by introducing polyvariance on various forms of context information =-=[89, 90, 112, 125]-=-. Such extensions yield more precise results, often at a price in the run-time of the analysis. On the other direction, observing that the cubic time upper-bound of the constraint-based analysis may s... |

14 |
Finding fixpoints on functional spaces
- Young, Hudak
- 1986
(Show Context)
Citation Context ...chnique The time-stamping technique has been previously introduced in Shivers's PhD thesis [112] on control-flow analysis for Scheme, based on ideas from Hudak and Young's "memoized pending analy=-=sis" [126]-=-. Using time stamps Shivers implements a top-down algorithm which computes an approximation of the semantic specification of the analysis and which does not maintain multiple intermediate results. The... |

13 | Embedding type structure in semantics
- Wand
- 1985
(Show Context)
Citation Context ...CPStransformed programs. In that, they implicitly share our concern about syntactic accidents, even though their primary goal was to transfer Wand's pioneer results on the CPS transformation of types =-=[77, 119]-=- to the CPS transformation of flow types. 2.8.2 Binding-time analysis and the CPS transformation Binding-time improvements have always been customary for users of bindingtime analysis [66, 88]. One of... |