Samuel Thomas
Sammy (he/him)



I'm a graduate student studying with James Bornholt at UT Austin. I'm interested in the study of programming languages, their design, and how to write compilers for them. I'm currently working on techniques for compiling languages for a new wave of exotic energy-efficient and performant hardware.

I wouldn't be where I am today without Rachit Nigam and Adrian Sampson. Go check out their work, they do cool stuff.


Desk: GDC 5.702B
Github: sgpthomas


Automatically synthesize a compiler

It's very time consuming and difficult to write compilers, especially for exotic specialized hardware. Diospyros showed that you could use e-graphs (egg) to build a very competitive rewrite based compiler for an architecture with explicit vector lanes. The performance and quality of the compiler depends a lot on the particular rewrite rules used. Finding these rules is a tedious, error-prone process. Ruler presented a technique to automatically generate rewrite rules from an interpreter that gives a DSL semantics. Their technique works well for generating rewrite rules for optimization, but it does not scale to generating rules for compiling. I'm exploring ways of combining these two techniques so that we can automatically generate efficient (but slow) compilers.

[ Github ]


A Compiler Infrastructure for Accelerator Generators

Authors: Samuel Thomas, Rachit Nigam, Zhijing Li, Adrian Sampson
Conference: ASPLOS '21

[ Github ] [ Website ]

Predictable Accelerator Design with Time-Sensitive Affine Types

Authors: Rachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li, Ted Bauer, Yuwei Ye, Apurva Koti, Adrian Sampson, Zhiru Zhang
Conference: PLDI '20

[ Github ] [ Website ]

Other stuff

Some side projects.
My Emacs config.

I help run GRACS (the CS graduate student representative organization).