404 Followers
172 Following
215 Posts
PhD Student @ Cornell | Programming Languages and Computer Architecture
Websitehttps://rachitnigam.com
Twitterhttps://twitter.com/notypes

@adrian Well, is it a

(distinguished chair) holders luncheon
OR
distinguished (chair holders)
??

They are completely different!

The EGRAPHS Workshop will hold its fifth (!) instance at PLDI 2026 in Boulder, Colorado! The conference is June 15-19, and the workshop is likely on one of the first two days.

Submission deadline is Fri, April 17, 2026.

We invite submissions for talks broadly, including talks that may cover already published or in-progress work.

https://pldi26.sigplan.org/home/egraphs-2026

EGRAPHS 2026 - PLDI 2026

Research in the EGRAPHS Community has recently exploded in both quantity and diversity. The data structure that powers SMT solvers is now seeing use in synthesis, optimization, and verification via equality saturation and related techniques. In addition to recent advances in the core data structure and techniques, researchers and practitioners are applying e-graphs to domains such as compilers, floating point accuracy, test generation, computational fabrication, automatic vectorization, deep learning compute graphs, symbolic computation, and more. The fifth EGRAPHS workshop will bring toge ...

Phew, survived the first grant submission and now onto prepping my first lecture! People weren't joking when they said you can't no-life as a prof. because you'll still have commitments tomorrow 😆

People keep asking me what the "Rust for hardware design" would look like. Those who know their PL history know that, before we could build Rust, we had to define ideas like "Memory Safety".

A hopefully uncontroversial take is that Memory safety defines a class of *logical errors* that pointer-manipulating programs suffer from. By defining this category, we were able to create dynamic and static mechanisms to eliminate it.

Building a "Rust for hardware design" requires the same so I spent the weekend writing a 2-page paper defining a criteria for "safe hardware description languages (HDLs)". Instead of competing with heavyweight formal tools, safe HDLs should complement them by eliminating a category of bugs that exist in *all hardware designs* and let the formal tools focus on design-specific properties.

Would love to hear what people think: https://people.csail.mit.edu/rachit/files/pubs/safe-hdls.pdf

Hardware design should be SAFER!

Memory-safe software languages changed the world and allowed to us to build massively larger systems. At their heart, memory-safe languages eliminate a category of bugs that pointer-manipulating programs suffer from.

Hardware design needs its own safe programming models but instead of memory, the problem is time! Synchronous hardware design needs to deal with a clock signal which creates discrete time steps. Every hardware module needs to think about how time affects its own logic and everything it communicates with. Getting it wrong leads to all sorts of logical bugs: reading meaningless values and using resources that are unavailable.

Our work on Filament (https://filamentHDL.com) defined a criteria for safe hardware description languages (HDLs) and showed that you can enforce it using a type system and introduce no overheads. Safe HDLs have become an interesting area of research and this year's ASPLOS features two papers exploring different threads:

- Lilac (https://arxiv.org/abs/2401.02570): Builds upon Filament applies its safety guarantees to parameterized designs. A cool outcome of this work was to show that, in addition to helping with verification, safe HDLs enable the design of fundamentally new abstractions!
- Anvil (https://arxiv.org/abs/2503.19447): Explores how Filament's verification abstractions can be applied to a higher-level, message-passing HDL and enforce safety properties!

I'm really excited to see where this line of work goes and what we can build with it! If you're around at ASPLOS and interested in this kind of work, come say hi and go watch the talks!!

Filament | Fearless Hardware Design

new acmart! time to CONFORM TO THE MACHINE!!!
Folks showing up to ASPLOS: would there be interest in having a "junior faculty social"? I used to organize in-person socials for PhD students at PLDI (pltea.github.io) and think it would be fun to have an excuse to meet the cohort of junior faculty!
@pamorim That's a really cool vision! Thanks for background and context on this!!

@pamorim Okay, I like this explanation! I think the place where my intuition falls short is thinking about the mathematical objects that "denote" richer language features.

For example, it is clear in my mind how inference rules and evaluation contexts act in concert to define reduction steps. However, even when I need to define the denotation of loops, I need to reason about partial orders. Is there a clean line from that to richer features like non-determinism, concurrency, control features etc.?

@pamorim Hm, interesting. Is the "target language" in this case "math"? So if I give an imperative, loop-based language denotational semantics, the fixpoint of the loop being computed within math is the "target language" running?