54 citations · 77 across the 7 of their papers we have counts for
7 papers
WatChat: Explaining perplexing programs by debugging mental models
Kartik Chandra, Katherine M. Collins, Will Crichton +6
Often, a good explanation for a program's unexpected behavior is a bug in the programmer's code. But sometimes, an even better explanation is a bug in the programmer's mental model…
Parameterized Hardware Design with Latency-Abstract Interfaces
Rachit Nigam, Ethan Gabizon, Edmund Lam +3
Hardware designs must use latency-insensitive (LI) interfaces when timing is input-dependent. When timing is input-independent, designs should use latency-sensitive (LS) interfaces…
Unifying Static and Dynamic Intermediate Languages for Accelerator Generators
Caleb Kim, Pai Li, Anshuman Mohan +3
Compilers for accelerator design languages (ADLs) translate high-level languages into application-specific hardware. ADL compilers rely on a hardware control interface to compose h…
Modular Hardware Design with Timeline Types
Rachit Nigam, Pedro Henrique Azevedo De Amorim, Adrian Sampson
Modular design is a key challenge for enabling large-scale reuse of hardware modules. Unlike software, however, hardware designs correspond to physical circuits and inherit constra…
A Compiler Infrastructure for Accelerator Generators
Rachit Nigam, Samuel Thomas, Zhijing Li +1
We present Calyx, a new intermediate language (IL) for compiling high-level programs into hardware designs. Calyx combines a hardware-like structural language with a software-like…
Predictable Accelerator Design with Time-Sensitive Affine Types
Rachit Nigam, Sachille Atapattu, Samuel Thomas +6
Field-programmable gate arrays (FPGAs) provide an opportunity to co-design applications with hardware accelerators, yet they remain difficult to program. High-level synthesis (HLS)…
Putting in All the Stops: Execution Control for JavaScript
Samuel Baxter, Rachit Nigam, Joe Gibbs Politz +2
Scores of compilers produce JavaScript, enabling programmers to use many languages on the Web, reuse existing code, and even use Web IDEs. Unfortunately, most compilers inherit the…