論文の概要: WatChat: Explaining perplexing programs by debugging mental models
- arxiv url: http://arxiv.org/abs/2403.05334v2
- Date: Wed, 02 Oct 2024 17:05:24 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-10-03 15:16:38.252490
- Title: WatChat: Explaining perplexing programs by debugging mental models
- Title(参考訳): WatChat: メンタルモデルをデバッギングしてパープレッシャプログラムを説明する
- Authors: Kartik Chandra, Katherine M. Collins, Will Crichton, Tony Chen, Tzu-Mao Li, Adrian Weller, Rachit Nigam, Joshua Tenenbaum, Jonathan Ragan-Kelley,
- Abstract要約: 私たちは、JavaScriptの型強制とGitのバージョン管理システムの2つのドメインで説明のためのシステムを構築します。
We show that WatChat's explanations exhibit key features of human-written explanation, different of a state-of-the-art language model。
- 参考スコア(独自算出の注目度): 33.238462470842386
- License:
- 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.
- Abstract(参考訳): しばしば、プログラムの予期せぬ振る舞いのよい説明は、プログラマのコードのバグである。
しかし、時として、より優れた説明は、プログラマが使用している言語やAPIのメンタルモデルにおけるバグである。
単に現在のコードをデバッグする("プログラマに魚を与える")のではなく、私たちのツールがメンタルモデルを直接デバッグできるとしたらどうでしょう("プログラマに魚を教える")?
本稿では,計算認知科学の最近の考え方を応用して,それを正確に行うための原則的枠組みを提供する。
プログラムに関する「なぜ?」質問が与えられたら、私たちは、ユーザーがプログラムの振る舞いに驚くかもしれない言語/APIに関する潜在的な誤解を自動的に推測し、その誤解を分析してプログラムの振る舞いを説明する。
我々のキーとなる考え方は、誤解を言語/APIの逆の(誤った)意味論として正式に表現することであり、プログラム合成技術を用いて推論し、デバッグすることができる。
当社のフレームワークであるWatChatは、JavaScriptの型強制型システムとGitのバージョン管理システムという2つのドメインで説明するためのシステムを構築することで、実演しています。
我々は、WatChatJSとWatChatGitの出力を、これらの2つの領域において実験的にコンパイルされた人間による説明と比較することにより評価した。
関連論文リスト
- A Proposal for a Debugging Learning Support Environment for Undergraduate Students Majoring in Computer Science [0.0]
生徒はデバッガの使い方を知らないし、使ったこともない。
我々は,正しいブレークポイント配置の自己学習を可能にする機能をScratchに実装した。
論文 参考訳(メタデータ) (2024-07-25T03:34:19Z) - Can humans teach machines to code? [24.32052793811087]
鍵となる前提は、人間が機械に概念を教えるのに十分な品質の例を提供することができるということである。
我々は、リストの最大要素を見つけるなど、6つのプログラミングタスクの例を生成するよう人間に依頼する。
我々は, (i) 人為的な例, (ii) ランダムなサンプル, (iii) 専門家による例に基づいて訓練されたプログラム合成システムの性能を比較した。
論文 参考訳(メタデータ) (2024-04-30T09:42:40Z) - NExT: Teaching Large Language Models to Reason about Code Execution [50.93581376646064]
大規模言語モデル(LLM)のコードは通常、プログラムの表面テキスト形式に基づいて訓練される。
NExTは,プログラムの実行トレースを検査し,実行時の動作を判断する手法である。
論文 参考訳(メタデータ) (2024-04-23T01:46:32Z) - What is a "bug"? On subjectivity, epistemic power, and implications for
software research [8.116831482130555]
バグ」は少なくとも1870年代からの工学的「欠陥」の口語である。
現代のソフトウェア指向の定義のほとんどは、開発者が意図したものと、プログラムが実際に何をするかを区別するものである。
バグをファインディングするのは簡単だ" と最初に言うのは,“バグパターンはしばしばエラーとなるコード”だ。
論文 参考訳(メタデータ) (2024-02-13T01:52:42Z) - On Feasibility of Declarative Diagnosis [0.0]
論理プログラムの宣言的診断には有用な方法があり、実際のプログラミングでは有効であるべきだと論じる。
本稿では、その主な弱点について論じ、克服方法を示す。
論文 参考訳(メタデータ) (2023-08-30T08:56:19Z) - Giving Feedback on Interactive Student Programs with Meta-Exploration [74.5597783609281]
ウェブサイトやゲームのようなインタラクティブなソフトウェアを開発することは、特にコンピュータ科学を学ぶための魅力的な方法である。
標準的アプローチでは、インストラクターは、学生が実装した対話型プログラムを手動で評価する必要がある。
Code.orgのような何百万ものオンラインプラットフォームは、インタラクティブなプログラムを実装するための代入に関するフィードバックを提供することができない。
論文 参考訳(メタデータ) (2022-11-16T10:00:23Z) - Using Large Language Models to Enhance Programming Error Messages [5.903720638984496]
大規模な言語モデルは、エラーメッセージのプログラミングに有用な拡張を作成するために使用することができる。
我々は,大規模言語モデルの利点と欠点について論じ,プログラムエラーメッセージの強化に向けた今後の研究の流れを浮き彫りにする。
論文 参考訳(メタデータ) (2022-10-20T23:17:26Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Non-Programmers Can Label Programs Indirectly via Active Examples: A
Case Study with Text-to-SQL [61.950839050383514]
APELは、非プログラマがシードセマンティクス(例えば、Codex)によって生成される候補プログラムの中から選択するフレームワークである。
各発話に対してAPELは、候補プログラムが異なる出力を生成する傾向がある単純な入力を積極的に検索する。
非プログラマに対して適切な出力を選択することのみを要求し、どのプログラムが正しいかを推測できるようにします。
論文 参考訳(メタデータ) (2022-05-25T00:35:12Z) - Searching for More Efficient Dynamic Programs [61.79535031840558]
本稿では,プログラム変換の集合,変換プログラムの効率を評価するための単純な指標,およびこの指標を改善するための探索手順について述べる。
実際に、自動検索は初期プログラムの大幅な改善を見出すことができることを示す。
論文 参考訳(メタデータ) (2021-09-14T20:52:55Z) - Enforcing Consistency in Weakly Supervised Semantic Parsing [68.2211621631765]
本稿では,関連する入力に対する出力プログラム間の整合性を利用して,スプリアスプログラムの影響を低減することを提案する。
より一貫性のあるフォーマリズムは、一貫性に基づくトレーニングを必要とせずに、モデルパフォーマンスを改善することにつながります。
論文 参考訳(メタデータ) (2021-07-13T03:48:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。