ezyang’s blog

the arc of software bends towards understanding


Blame Trees

I just presented Blame Trees at the 13th Algorithms and Data Structures Symposium. Blame trees are a functional data structure which support an efficient merge operation by incorporating information about the “blame” (think git blame) of any given part of the structure. It’s a theory paper, so the constant factors are not so good, but […]

  • August 12, 2013


Humbly presented for your consideration: Exhibit A, an NDSEG essay that did not get accepted; Exhibit B, an NDSEG essay that did get accepted. It’s pretty cool what making a statement more focused can do. (See also Philip Guo’s page on the topic.)

  • April 5, 2013

What happens when you mix three research programming languages together

“...so that’s what we’re going to build!” “Cool! What language are you going to write it in?” “Well, we were thinking we were going to need three programming languages...” “...three?” “...and they’ll be research programming languages too...” “Are you out of your mind?” This was the conversation in streaming through my head when I decided […]

  • May 16, 2012

Visit month: Princeton

If you haven't noticed, these are coming in the order of the visit days. Whereas the weather at UPenn was nice and sunny, the NJ Transit dinghy rolled into a very misty Princeton. Fortunately, I had properly registered for this visit day, so the hotel was in order. I was a bit early, so I […]

  • March 20, 2012

Visit month: University of Pennsylvania

I'm hoping that this will be the beginning of a series of posts describing all of the visit days/open houses that I attended over the past month. Most of the information is being sucked out of the notes I took during the visits, so it's very stream of consciousness style. It's kind of personal, and […]

  • March 16, 2012