Blogs / Personal blogs

Max Bernstein

bernsteinbear.com

I am a human and programmer . I like to read books, take photos, and ride bikes in the hills near my house. I post things (and toot things ) about bread, legumes, and compilers. Right now, I am a software engineer working on compilers at Shopify and a Hacker in Residence at the Dartmouth College computer science…

Popular posts
25
Total points
4,681
HN comments
1,039
Rank
#250 personal

Visit bernsteinbear.com → RSS feedOn Hacker News Jan 2019 – Dec 2025

Software Engineering 22Programming Languages 15Tools & Productivity 3Math & Algorithms 2Life, Learning & Writing 2Databases & Data 2

1

You can use C-Reduce for any language

C-Reduce is a tool by Regehr and friends for minimizing C compiler bug reproducers. Imagine if you had a 10,000 line long C file that triggered a Clang bug. You don’t want to send a massive blob to the compiler developers because that’s unhelpful, but you also don’t want to cut it down to size by hand. The good news…

4

scrapscript.py

Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.

9

Into CPS, Never to Return

CPS, or continuation-passing style, is an intermediate representation for programs, particularly functional programs. It’s used in compilers for languages such as SML and Scheme. Much of its utility comes from its support for tail calls and nonlocal control flow such as call/cc, but it can also be used as an…

20

Ways to generate SSA

Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. See this lesson from Cornell for converting Bril to SSA…