Dynamic determinacy analysis

  • Schäefer M
  • Sridharan M
  • Dolby J
 et al. 
  • 33

    Readers

    Mendeley users who have this article in their library.
  • 26

    Citations

    Citations of this article.

Abstract

We present an analysis for identifying determinate variables and expressions that always have the same value at a given program point. This information can be exploited by client analyses and tools to, e.g., identify dead code or specialize uses of dynamic language constructs such as eval, replacing them with equivalent static constructs. Our analysis is completely dynamic and only needs to observe a single execution of the program, yet the determinacy facts it infers hold for any execution. We present a formal soundness proof of the analysis for a simple imperative language, and a prototype implementation that handles full JavaScript. Finally, we report on two case studies that explored how static analysis for JavaScript could leverage the information gathered by dynamic determinacy analysis. We found that in some cases scalability of static pointer analysis was improved dramatically, and that many uses of runtime code generation could be eliminated.

Author-supplied keywords

  • dynamic analysis
  • javascript
  • static analysis

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document

Get full text

Authors

  • Max Schäefer

  • Manu Sridharan

  • Julian Dolby

  • Frank Tip

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free