Abstract

We introduce RATA, a static analysis based on abstract interpretation for the rapid inference of atomic types in Javascript programs.
RATA enables aggressive type specialization optimizations in dynamic languages.
RATA is a combination of an interval analysis (to determine the range of variables), a kind analysis (to determine if a variable may assume fractional values, or NaN), and a variation analysis (to relate the values of variables).
The combination of those three analyses allows our compiler to specialize double variables (the only numerical type in Javascript) to integer variables, providing large performance improvements (up to 7.7x) in some of our benchmarks.

‚Äč