ASTro: An AST-based Reusable Optimization Framework
This program is tentative and subject to change.
Partial evaluation of abstract syntax tree (AST) traversal interpreters removes interpretation overhead while maximizing developer productivity; a language author specifies only the behavior of each AST node, and the framework specializes whole programs automatically. Existing solutions, however, come with heavyweight toolchains and tightly coupled, platform-specific back-ends, making portability and deployment difficult.
We present ASTro, a lightweight framework that keeps the node-centric workflow but eliminates heavy dependencies. ASTro translates the partially evaluated interpreter into well-structured C source code that encourages aggressive inlining by commodity compilers, yielding competitive native code. Because the output is plain C, it can be rebuilt with any mainstream toolchain, reducing deployment effort. To support just-in-time use, every AST sub-tree receives a Merkle-tree hash; identical fragments share their compiled artifacts at astro-scale—across processes, machines, and deployments—so each piece is compiled once and reused many times.
This paper introduces ASTro, a framework for building interpreters and partial evaluators, along with its generator tool, ASTroGen. It shows that language authors can implement interpreters by specifying only the behavior of AST nodes. We present empirical measurements on micro benchmarks that quantify ASTro’s runtime performance.
This program is tentative and subject to change.
Wed 15 OctDisplayed time zone: Perth change
10:50 - 12:05 | |||
10:50 5mDay opening | Welcome VMIL | ||
10:55 25mResearch paper | Copy-and-Patch Just-in-Time Compiler for R VMIL Matěj Kocourek Charles University, Filip Křikava Czech Technical University in Prague, Jan Vitek Northeastern University DOI | ||
11:25 25mResearch paper | ASTro: An AST-based Reusable Optimization Framework VMIL Koich Sasada Stores, Inc. | ||
11:50 15mShort-paper | Evaluating Candidate Instructions for Reliable Program Slowdown at the Compiler Level - Towards Supporting Fine-grained Slowdown for Advanced Developer Tooling VMIL DOI Pre-print |