English

An Abstract Interpretation-based Model of Tracing Just-In-Time Compilation

Programming Languages 2015-10-29 v2

Abstract

Tracing just-in-time compilation is a popular compilation technique for the efficient implementation of dynamic languages, which is commonly used for JavaScript, Python and PHP. We provide a formal model of tracing JIT compilation of programs using abstract interpretation. Hot path detection corresponds to an abstraction of the trace semantics of the program. The optimization phase corresponds to a transform of the original program that preserves its trace semantics up to an observation modeled by some abstraction. We provide a generic framework to express dynamic optimizations and prove them correct. We instantiate it to prove the correctness of dynamic type specialization and constant variable folding. We show that our framework is more general than the model of tracing compilation introduced by Guo and Palsberg [2011] based on operational bisimulations.

Keywords

Cite

@article{arxiv.1411.7839,
  title  = {An Abstract Interpretation-based Model of Tracing Just-In-Time Compilation},
  author = {Stefano Dissegna and Francesco Logozzo and Francesco Ranzato},
  journal= {arXiv preprint arXiv:1411.7839},
  year   = {2015}
}

Comments

To appear in ACM Transactions on Programming Languages and Systems

R2 v1 2026-06-22T07:14:56.971Z