研究課題/領域番号 |
21K02920
|
研究機関 | 筑波大学 |
研究代表者 |
中井 央 筑波大学, 図書館情報メディア系, 准教授 (70301083)
|
研究期間 (年度) |
2021-04-01 – 2025-03-31
|
キーワード | プログラミング初心者 / 構文エラー / 構文解析 |
研究実績の概要 |
本研究では、これまでに行われているプログラミング初学者の教育における問題点に対する研究成果を、特定の環境だけではなく、教育者の環境に合わせられるようにすることを目的としている。前年度までの調査の結果、教育の現場ではその教育の環境にあったメッセージを出せるようにすることが有用であるという見解を得た。すなわち、扱う題材や受講者のエラーを起こす傾向などに応じて、現場の教育者がメッセージをカスタマイズできるというものである。我々は使用している環境やプログラムを改変するのではなく、言語処理系を作成する段階でメッセージが変更できる機能を持たせられる方法を考案し、プロトタイプを作成した。具体的には本研究室で開発している Depager という構文解析器生成系を使用して LR 構文解析における状態とエラーメッセージを紐づけられるようにした。メッセージの変更は独立したテキストファイルに対して行う。このプロトタイプに対して、C言語および Python 言語について具体的にエラーを含むプログラムの適用を試みた。これらのエラーを含むプログラムは他の研究者の研究成果としてウェブ上で公開されているものを用いた。これらのプログラムを gcc および Python の処理系に与えるとエラーである旨の簡潔なメッセージを出力することがほとんどである。これらに対してより具体的なメッセージを設定を行った。なお、LR構文解析の性質から、同じ状態が異なるタイプの入力に対応する場合があるが、この場合はメッセージを併記することになる。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
4: 遅れている
理由
本研究では実際に授業等で収集され、公開されているデータ(エラーを含んだプログラム)を利用している。しかし、これらのデータは機械的に収集されており、そこには想定外のもの(例えば、if文の条件部分に for 文を記述している)も多く含まれていた。このため、エラーメッセージの分析に想定以上に時間がかかった。 また、システムへ与える文法記述に変更があると内部の状態番号が変わるため、変更前後で用意したメッセージを使用できるようにする仕組みを考案する必要があるが、この部分の開発が遅れている。
|
今後の研究の推進方策 |
プロトタイプの動作は想定通りのものであることが確認できたが、文法の変更には対応できていない、また、一般のユーザに使いやすいフォーマットになっていない、という問題がある。今後はこの点の改善を行う。
|
次年度使用額が生じた理由 |
発注していたプロトタイプ開発(データ作成含む)に遅れが生じて、予定していた機能の開発とデータ作成が完了しなかったため。次年度は未完了の機能の開発およびデータ作成を行う。
|