110 citations · 348 across the 22 of their papers we have counts for
23 papers
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…
Type-Error Ablation and AI Coding Agents
Shriram Krishnamurthi, Matthew Flatt
Programming language implementors have designed error messages with one consumer in mind: the human programmer. Human-factors research has consistently found that programmers engag…
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…
Grounded Language Design for Lightweight Diagramming for Formal Methods
Siddhartha Prasad, Ben Greenman, Tim Nelson +1
Model finding, as embodied by SAT solvers and similar tools, is used widely, both in embedding settings and as a tool in its own right. For instance, tools like Alloy target SAT to…
Privacy-Respecting Type Error Telemetry at Scale
Ben Greenman, Alan Jeffrey, Shriram Krishnamurthi +1
Context: Roblox Studio lets millions of creators build interactive experiences by programming in a variant of Lua called Luau. The creators form a broad group, ranging from novices…
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…