WatChat: Explaining perplexing programs by debugging mental models

要約

多くの場合、プログラムの予期しない動作の適切な説明は、プログラマのコードのバグです。
しかし、場合によっては、プログラマーが使用している言語または API のメンタル モデルにバグがあるという方が、さらに適切な説明になることがあります。
現在のコードを単にデバッグする (「プログラマーに魚を与える」) のではなく、ツールがメンタル モデルを直接デバッグできる (「プログラマーに魚を教える」) としたらどうなるでしょうか?
この論文では、計算認知科学からの最近のアイデアを適用して、まさにそれを行うための原則に基づいたフレームワークを提供します。
「なぜ?」という疑問が生じた場合、
プログラムに関する質問がある場合、ユーザーがプログラムの動作に驚かされる可能性のある言語/API に関する潜在的な誤解を自動的に推測し、それらの誤解を分析してプログラムの動作の説明を提供します。
私たちの重要なアイデアは、言語/API の反事実 (誤った) セマンティクスとして誤解を正式に表現し、プログラム合成技術を使用して推論およびデバッグできるようにすることです。
JavaScript の型強制と Git バージョン管理システムの 2 つのドメインで説明するためのシステムを構築することにより、フレームワーク WatChat を実証します。
私たちは、WatChatJS と WatChatGit の出力を、これら 2 つの領域で実験的に収集された人間が書いた説明と比較することによって評価します。WatChat の説明は、最先端の言語モデルとは異なり、人間が書いた説明の重要な特徴を示していることを示します。

要約(オリジナル)

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.

arxiv情報

著者 Kartik Chandra,Katherine M. Collins,Will Crichton,Tony Chen,Tzu-Mao Li,Adrian Weller,Rachit Nigam,Joshua Tenenbaum,Jonathan Ragan-Kelley
発行日 2024-10-02 17:05:24+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.HC, cs.PL パーマリンク