James Bornholt

James Bornholt


  1. Two fun new papers! Our work on synthesized soft updates for crash consistency appeared at ECOOP 2023. Sammy’s work on Isaria, a framework for automatically building vectorizing compilers for weird architectures, will appear at ASPLOS 2024!

  2. From the AWS side of my head on Pi Day: our thoughts on building a reliable and fast user-space file system for Amazon S3.

  3. On the AWS Storage blog, we wrote a post about how we’re using formal methods to build Amazon S3.

  4. We have a new paper at SOSP 2021 about applying lightweight formal methods to validate ShardStore, Amazon S3’s new storage node software. As part of this work, we open-sourced a new stateless model checker for Rust called Shuttle, which is great at finding subtle concurrency bugs.

  5. Our paper on Diospyros, a new synthesis-aided compiler for DSPs, will appear at ASPLOS 2021.

  6. Our SOSP paper on scaling automated verification won best paper and distinguished artifact awards! We also have two new papers: at VMCAI 2020 on automatically fixing performance issues in solver-aided tools, and at CGO 2020 on synthesizing high-performance quantized machine learning kernels.

  7. The SIGPLAN blog published an article I wrote about the state of program synthesis in 2019.

  8. I defended my PhD!

  9. The video from my OOPSLA 2018 talk on profiling symbolic evaluation engines is now available.

  10. SMT Solving on an iPhone

    Why buy an expensive desktop computer when your iPhone is a faster SMT solver?

  11. Symbolic Profiling for Scalable Verification and Synthesis

    Our OOPSLA’18 paper introduces performance debugging techniques for automated reasoning tools.

  12. Our paper on profiling symbolic evaluation engines will appear at OOPSLA 2018! The new symbolic profiler is integrated into Rosette, so you can try it out right now.

  13. Can you train a neural network using an SMT solver?

    Yes, and I did, but you shouldn’t.

  14. Building a Program Synthesizer

    Build a program synthesis tool, to generate programs from specifications, in 20 lines of code using Rosette.

  15. I was interviewed for the People of Programming Languages series at POPL 2018.

  16. The video from my PLDI 2017 talk about memory model synthesis is available.

  17. Our paper Synthesizing Memory Models from Framework Sketches and Litmus Tests will appear at PLDI 2017! More info on the MemSynth homepage.

  18. Our work on DNA storage was selected to appear in IEEE Micro’s Top Picks from the Computer Architecture Conferences special issue later this year!

  19. I was lucky enough to speak at the Programming Languages Mentoring Workshop at PLDI this year about our work on Uncertain<T>. You can watch the talk (sorry about the quality!) or check out the slides.

  20. Back in January, I presented our paper on Optimizing Synthesis with Metasketches at POPL 2016. If you weren’t there, you can now watch the talk on YouTube!

  21. I presented our two papers, on file system crash-consistency models and DNA storage, at ASPLOS 2016. The internet is awash with cat pictures thanks to coverage of our DNA storage work; see the Daily Mail, The Register, or Gizmodo.

  22. Memory Consistency Models: A Tutorial

    The cause of, and solution to, all your multicore performance problems.

  23. Our work on using DNA for digital data storage is featured in the New York Times.

  24. Our paper on optimal program synthesis, Optimizing Synthesis with Metasketches, will appear at POPL 2016!

  25. I’m on the artifact evaluation committee for POPL’16.

  26. Read about Uncertain<T> in IEEE Micro as part of their Top Picks from the Computer Architecture Conferences special issue.

  27. Adrian, Luis and I have a paper on hardware–software co-design at SNAPL.

  28. Monte Carlo Benchmarking

    SNAPL rejected my crazy abstract, so I’m sharing my craziness with the world instead.

  29. I’ll be on the artifact evaluation committee for PLDI’15.

  30. Program Synthesis Explained

    An introduction to the field of program synthesis, the idea that computers can write programs automatically if we just tell them what we want.

  31. How Not to Measure Computer System Performance

    In a recent Sampa group meeting, I spoke about the many pitfalls in measuring computer system performance.

  32. Our Uncertain<T> paper was selected as a SIGPLAN Research Highlight. How cool is that!