activity
20232026
most citedA Grounded Conceptual Model for Ownership Types in Rust

22 citations · 30 across the 8 of their papers we have counts for

collaborators

9 papers

cs.PL2026

A Design Space Exploration of Async/Await

Gavin Gray, Shriram Krishnamurthi, Will Crichton

Many modern programming languages include some form of asynchronous programming. In particular, a growing number now have what we call straight-line asynchrony: attempts to provide…

cs.HC2026

Explorable Proofs: Making Written Proofs Explorable by Grounding Them in Formal Representations

Hita Kambhamettu, Will Crichton, Sean Welleck +2

LLM-generated explanations can make technical content more accessible, but there is a ceiling on what they can support interactively. Because LLM outputs are static text, they cann…

cs.HC2025

When Do Reactive Notebooks Fail to React?

Yuchen Lu, Megan Zheng, Will Crichton +3

Computational notebooks are convenient for programmers, but can easily become confusing and inconsistent due to the ability to incrementally edit a program that is running. Recent…

cs.PL2025★ 1 cited

An Interactive Debugger for Rust Trait Errors

Gavin Gray, Will Crichton, Shriram Krishnamurthi

Compiler diagnostics for type inference failures are notoriously bad, and type classes only make the problem worse. By introducing a complex search process during inference, type c…

cs.PL2024★ 3 cited

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…

cs.PL2024★ 1 cited

Profiling Programming Language Learning

Will Crichton, Shriram Krishnamurthi

This paper documents a year-long experiment to "profile" the process of learning a programming language: gathering data to understand what makes a language hard to learn, and using…

cs.PL2023★ 3 cited

A Core Calculus for Documents

Will Crichton, Shriram Krishnamurthi

Passive documents and active programs now widely comingle. Document languages include Turing-complete programming elements, and programming languages include sophisticated document…

cs.PL2023

Debugging Trait Errors as Logic Programs

Gavin Gray, Will Crichton

Rust uses traits to define units of shared behavior. Trait constraints build up an implicit set of first-order hereditary Harrop clauses which is executed by a powerful logic progr…

cs.PL2023★ 22 cited

A Grounded Conceptual Model for Ownership Types in Rust

Will Crichton, Gavin Gray, Shriram Krishnamurthi

Programmers learning Rust struggle to understand ownership types, Rust's core mechanism for ensuring memory safety without garbage collection. This paper describes our attempt to s…