Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity

  • Authors:
  • Luke Hornof;Jacques Noyé

  • Affiliations:
  • Irisa, Campus Universitaire de Beaulieu, 35042 Rennes Cedex, France;École des Mines de Nantes, 4 rue Alfred Kastler, 44070 Nantes Cedex 03, France

  • Venue:
  • PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Since a binding-time analysis determines how an off-line partial evaluator will specialize a program, the accuracy of the binding-time information directly determines the degree of specialization. We have designed and implemented a binding-time analysis for an imperative language, and integrated it into our partial evaluator for C, called Tempo [9]. This binding-time analysis includes a number of new features, not available in any existing partial evaluator for an imperative language, which are critical when specializing existing programs such as operating system components [24, 25].• Flow sensitivity. A different binding-time description is computed for each program point, allowing the same variable to be considered static at one program point and dynamic at another.• Context sensitivity. Each function call is analyzed with the context of the call site, generating multiple binding-time annotated instances of the same function definition.• Return sensitivity. A different binding-time description is computed for the side-effects and the return value of a function.