Alexander J. Root

I am a Stanford CS PhD student advised by Fredrik Kjolstad, currently working on sparse data reorganization. I am generously supported by the NSF GFRP and a Stanford School of Engineering fellowship.

I did my undergrad and masters at MIT under Jonathan Ragan-Kelley and Andrew Adams, where I worked on vector instruction selection, fixed-point computation, and bounds inference. I also interned with Andrew, Shoaib Kamil, and Maaz Bin Safeer Ahmad at Adobe Research in the summers of 2021 and 2022, on the same topics. Part of my undergraduate work on fixed-point computation was advised by Frédo Durand.

Much of my research in undergrad and my masters was applied to the Halide compiler, and I remain somewhat active in the language's development.

CV  /  Google Scholar  /  Twitter  /  Github

profile photo

I am generally interested in domain specific languages, compilers, and architectures, particularly for numerical methods. Computational photography and computer graphics are two application areas that I am quite interested in.

Vector Instruction Selection for Digital Signal Processors Using Program Synthesis
Maaz Bin Safeer Ahmad, Alexander J. Root, Andrew Adams, Shoaib Kamil, Alvin Cheung
ASPLOS, 2022

In this paper, we propose a new algorithm that first abstracts the target platform instructions into high-level uber-instructions, with each uber-instruction unifying multiple concrete instructions from the target platform. Program synthesis is used to lift input code sequences into semantically equivalent sequences of uber-instructions and then to lower from uber-instructions to machine code.

Project Website | Paper | Code



CS 343D: Domain-Specific Programming Models and Compilers, TA, Winter 2023


6.818: Dynamic Computer Language Engineering, TA, Fall 2021

6.006: Introduction to Algorithms, TA, Spring 2019 & Spring 2020

MEET (Global Teaching Labs), Computer Science Instructor, January 2019

Website template stolen from Jon Barron