Ductape: Optimizing Dynamically Typed Programs using Ahead-of-Time Compilation and Data-Flow Analysis
This program is tentative and subject to change.
The software landscape is showing consistent, accelerated growth in the volume of code developed using dynamic languages. These languages are characterized by dynamic typing and more lax preemptive checks, which allow rapid application development and shorter develop- ment cycles. The vast majority of these languages are interpreted; that is, programs are executed by an interpreter in a managed runtime en- vironment. Such interpreters incur significant performance hits, and, to counter that, modern runtime environments usually employ some sort of optimization. The most common one is Just-in-Time compilation (JIT), which translates source code on-demand into native code that can run much faster. Some notable JIT engines (such as V8 for JavaScript) ex- hibit impressive speedups. Still, in most realistic scenarios, they cannot surpass the performance of hand-crafted native code written in a low- level language like C. There are inherent reasons for why Ahead-of-Time compilation (AOT) is rarely practiced with dynamic languages. Since variables are dynamically typed, this will require most of the type-checking to be done at runtime still, thus limiting the range of optimization that can be performed ahead of time, consequently limiting the benefit of AOT compilation. We pro- pose an approach that utilizes static analysis for the purpose of sound type inference, which can then be leveraged for code generation requir- ing minimal amount of runtime type checks. Unlike previous work in this area, our approach eliminates the need for the JIT at runtime, or, indeed, any managed runtime at all. We have preliminary evidence with promising results showing that AOT is a viable alternative to JIT on a few representative benchmarks. This proof of concept is an indication that AOT has potential to parallel the performance of JIT, and even exceed it.
This program is tentative and subject to change.
Tue 14 OctDisplayed time zone: Perth change
10:50 - 12:05 | |||
10:50 55mKeynote | From Within: Compiler Testing and Validation via Compilers SAS Qirun Zhang Georgia Institute of Technology | ||
11:45 20mTalk | Ductape: Optimizing Dynamically Typed Programs using Ahead-of-Time Compilation and Data-Flow Analysis SAS |