English

WatChat: Explaining perplexing programs by debugging mental models

Programming Languages 2024-10-03 v2 Artificial Intelligence Human-Computer Interaction

Abstract

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 of the language or API they are using. Instead of merely debugging our current code ("giving the programmer a fish"), what if our tools could directly debug our mental models ("teaching the programmer to fish")? In this paper, we apply recent ideas from computational cognitive science to offer a principled framework for doing exactly that. Given a "why?" question about a program, we automatically infer potential misconceptions about the language/API that might cause the user to be surprised by the program's behavior -- and then analyze those misconceptions to provide explanations of the program's behavior. Our key idea is to formally represent misconceptions as counterfactual (erroneous) semantics for the language/API, which can be inferred and debugged using program synthesis techniques. We demonstrate our framework, WatChat, by building systems for explanation in two domains: JavaScript type coercion, and the Git version control system. We evaluate WatChatJS and WatChatGit by comparing their outputs to experimentally-collected human-written explanations in these two domains: we show that WatChat's explanations exhibit key features of human-written explanation, unlike those of a state-of-the-art language model.

Keywords

Cite

@article{arxiv.2403.05334,
  title  = {WatChat: Explaining perplexing programs by debugging mental models},
  author = {Kartik Chandra and Katherine M. Collins and Will Crichton and Tony Chen and Tzu-Mao Li and Adrian Weller and Rachit Nigam and Joshua Tenenbaum and Jonathan Ragan-Kelley},
  journal= {arXiv preprint arXiv:2403.05334},
  year   = {2024}
}

Comments

This is a preprint of work presented in early-stage non-archival form at the ACL Natural Language Reasoning and Structured Explanations Workshop

R2 v1 2026-06-28T15:13:38.042Z